10.4 MySQL如何缓存

MySQL有以下缓存。(注意,文件名包含的一些不正确的拼写这个词缓存。)

  • 键缓存

共享缓存所有的b -树索引块不同NISAM文件。使用哈希和反向链表快速缓存最近使用的块和快速冲洗改变为一个特定的表条目。(mysys / mf_keycash.c)

  • 记录缓存

这是用于快速扫描的表中的所有记录。(mysys / mf_iocash.cisam / _cash.c)

  • 表缓存

这是最最近使用的表。(sql / sql_base.cc)

  • 主机名缓存

快速查找(反向的名字解决)。这是一个当你必须缓慢的DNS。(sql / hostname.cc)

  • 特权缓存

允许快速变化之间的数据库,最后使用权限为每个用户/数据库缓存的组合。(sql / sql_acl.cc)

  • 堆表缓存

许多的使用集团截然不同的缓存中的所有发现的行表。(这是一个非常快速的内存表和哈希索引)。

  • 加入缓冲区缓存

    对于每一个全部加入在一个选择声明行发现在加入缓存缓存。(一个全部加入这意味着没有钥匙可以用来发现行中的下一个表列表。)在最坏的情况下,一个选择查询可以使用许多加入缓存。