Consider the key buffer in a MySQL server. Which two statements are true about this feature?
#考虑MySQL服务器中的 key buffer。关于这个特性,哪两种说法是正确的?
A. It caches index blocks for MyISAM tables only.
B. It caches index blocks for all storage engine tables.
C. It is set on a per-connection basis.
D .It caches index blocks for InnoDB tables only.
为了最小化磁盘的 I/O , MyISAM 存储引擎的表使用键高速缓存来缓存索引,这个键高速缓存的大小则通过 key-buffer-size 参数来设置。如果应用系统中使用的表以 MyISAM 存储引擎为主,则应该适当增加该参数的值,以便尽可能的缓存索引,提高访问的速度。
建议key_buffer设置为物理内存的1/4(针对MyISAM引擎),甚至是物理内存的30%~40%,如果key_buffer_size设置太大,系统就会频繁的换页,降低系统性能。因为MySQL使用操作系统的缓存来缓存数据,所以我们得为系统留够足够的内存;在很多情况下数据要比索引大得多。