MySQL中Table Cache的相关优化 不指定

jed , 2011-3-18 13:46 , 服务器技术 , 评论(0) , 阅读(2608) , Via 本站原创 | |
   MySQL打开表的相关机制:在MySQL中每个线程都是独立打开自己需要的表的文件描述符,而不是通过共享已经打开的表的文件描述符。针对不同的存储引擎可能有不同的处理方式。如MyISAM表,每一个客户端线程打开任何一个MyISAM表的数据文件都哟啊打开一个文件描述符,但如果是索引文件,则可以多个线程共享同一个索引文件的描述符。对于InnoDB的存储引擎,如果使用的是共享表空间来存储数据,则打开的文件描述符就比较少,但如果使用的是独享表空间方式则打开的文件描述符则较多。

       MySQL在系统中实现了一个Table Cache机制,和Thread Cache机制有点类似。主要就是Cache打开所有表文件的描述符,当有新的请求时不需要重新的打开,使用结束时也不用立即关闭。

       查看table_cache的设置和当前系统中的使用状况:

       show variables like 'table_cache';

      点击在新窗口中浏览此图片

      show status like 'open_tables';

      点击在新窗口中浏览此图片

      显示系统设置的table_cache为764个,在该MySQL中,Table Cache内可以缓存764个打开文件的描述符;当前系统中打开的描述符仅有0个。

      此外还有Sort Buffer、Join Buffer和Read Buffer等

      show   variables like '%buffer%';

      每个Thread都会创建自己独立的Buffer,而不是整个系统共享的Buffer,不要因为设置过大而造成系统内存不足。

        摘自:《MySQL性能调优与架构设计》



Tags: ,
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]