MySQL有以下缓存。(注意,文件名包含的一些不正确的拼写这个词”缓存。”)
键缓存
共享缓存所有的b -树索引块不同NISAM文件。使用哈希和反向链表快速缓存最近使用的块和快速冲洗改变为一个特定的表条目。(mysys / mf_keycash.c
)
记录缓存
这是用于快速扫描的表中的所有记录。(mysys / mf_iocash.c
和isam / _cash.c
)
表缓存
这是最最近使用的表。(sql / sql_base.cc
)
主机名缓存
快速查找(反向的名字解决)。这是一个当你必须缓慢的DNS。(sql / hostname.cc
)
特权缓存
允许快速变化之间的数据库,最后使用权限为每个用户/数据库缓存的组合。(sql / sql_acl.cc
)
堆表缓存
许多的使用集团
或截然不同的
缓存中的所有发现的行堆
表。(这是一个非常快速的内存表和哈希索引)。
加入缓冲区缓存
对于每一个”全部加入”在一个
选择
声明行发现在加入缓存缓存。(一个”全部加入”这意味着没有钥匙可以用来发现行中的下一个表列表。)在最坏的情况下,一个选择
查询可以使用许多加入缓存。