缓存能满足系统的性能要求。
Key_blocks_u
used
Key_blocks_used
键缓存使用率Key_blocks_usedKey_blocks_usedKey_blocks_u
used37尽管键缓存使用率较低,说明key_buffer_size设置较高,MySQL没有将其使用完,基于键缓存各方面都能满足系统要求且内存够用,不必调整。
table_cache_sizetable_ope
_cache512之后叫做table_ope
_cache
Ope
_tables
Ope
ed_tables
fOpe
_tables表示当前打开的表缓存数,如果执行flushtables操作,则此系统会关闭一些当前没有使用的表缓存而使得此状态值减小;ope
d_tables表示曾经打开的表缓存数,会一直进行累加,如果执行flushtables操作,值不会减小。应该将Ope
_tables的值和table_cache进行对照。如果每秒有太多Ope
ed_tables,那么说明table_cache还不够大,表缓存没有被完全利用上时,显式的临时表也能导致Ope
ed_tables增加。table_cache指定表高速缓存的大小。设置该变量不会立即生效,要等到下一个线程打开表的时候才会生效,当它生效的时候,MySQL会检查变量的值,如果值大于缓存表中的数量,线程就可以把新打开的表插入到缓存中,这样可以更快地访问表内容。如果值小于缓存表中的数量,MySQL就会从缓存中删除掉没有使用的表。通过检查峰值时间的状态值Ope
_tables和Ope
ed_tables,可以决定是否需要增加table_cache的值。如果发现ope
_tables等于table_cache,并且ope
ed_tables在不断增长,那么就需要增加table_cache的值了。Ope
_tables值与table_cache相等,且观察到Ope
ed_tables较大,应适当增加table_cache,可将其设置为512。
thread_cache_size
thread_cache_size是缓存的同时操作的线程数。线程缓存保存了和当前连接
f无关的线程,这些线程可以供新连接使用。当一个新连接被创建出来并且缓存中有一个线程的时候,MySQL会把这个线程从缓存中删除,并且把它赋给连接。连接关闭时,MySQL会回收线程,把它放回到缓存中。如果缓存中没空间了,MySQL就会销毁该线程。只要缓存中有自由的线程,MySQL就能很快地响应连接请求,因为它不需要为每个连接都创建新的线程。设置该变量不会立即生效,需要等到下一次线程关闭的时候,MySQL会检查缓存中是否有空间存储线程。如果是,他会把线程缓存起来,供另外一个连接使用,如果不是,它会直接结束线程,这种情况下,缓存中线程的数量,以及线程缓存使用的内存数量不会立即下降。只有当新连接为了使用线程而把它从缓存中移走的时候才会看到下降。MySQL只有在连接关闭的时候才会把线程加入缓存,也只有在创建新连接的时候才从缓存中移除线程。Co
ectio
s
thread_co
ected
threads_crr