mysql数据库的优化(6)
十六、MySQL高速缓存(所有线程共享,一次性分配)
键码缓存:key_buffer_size,默认8M。
表缓存:table_cache,默认64。
线程缓存:thread_cache_size,默认0。
主机名缓存:可在编译时修改,默认128。
内存映射表:目前仅用于压缩表。
注意:MySQL没有行高速缓存,而让操作系统处理。
二七、MySQL缓存区变量(非共享,按需分配)
sort_buffer:ORDER BY/GROUP BY
record_buffer:扫描表。
join_buffer_size:无键联结
myisam_sort_buffer_size:REPAIR TABLE
net_buffer_length:对于读SQL语句并缓存结果。
tmp_table_size:临时结果的HEAP表大小。
十八、MySQL表高速缓存工作原理
每个MyISAM表的打开实例(instance)使用一个索引文件和一个数据文件。如果表被两个线程使用或在同一条查询中使用两次,MyIASM将共享索引文件而是打开数据文件的另一个实例。
如果所有在高速缓存中的表都在使用,缓存将临时增加到比表缓存尺寸大些。如果是这样,下一个被释放的表将被关闭。
你可以通过检查mysqld的Opened_tables变量以检查表缓存是否太小。如果该值太高,你应该增大表高速缓存。
相关文章:If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments
还没有评论。
发表评论