标题:mysql Table Cache优化设置 出处:沧海一粟 时间:Tue, 06 Mar 2012 09:11:11 +0000 作者:jed 地址:http://www.dzhope.com/post/904/ 内容: mysql查询tables cache的最大数: show variables like 'tab第二世界整理发布le_cache'; mysql查询当前系统已经打开的描述符命令: show status like 'open_tables'; 一、调整table cache table_cache 参数设置表高速缓存的数目。每个连接进来,都会至少打开一个表缓存。因此, table_cache 的大小应与 max_connections 的设置有关。例如,对于 200 个并行运行的连接,应该让表的缓存至少有 200 × N ,这里 N 是应用可以执行的查询的一个联接中表的最大数量。此外,还需要为临时表和文件保留一些额外的文件描述符。 当 Mysql 访问一个表时,如果该表在缓存中已经被打开,则可以直接访问缓存;如果还没有被缓存,但是在 Mysql 表缓冲区中还有空间,那么这个表就被打开并放入表缓冲区;如果表缓存满了,则会按照一定的规则将当前未用的表释放,或者临时扩大表缓存来存放,使用表缓存的好处是可以更快速地访问表中的内容。 执行 flush tables 会清空缓存的内容。一般来说,可以通过查看数据库运行峰值时间的状态值 Open_tables 和 Opened_tables ,判断是否需要增加 table_cache 的值(其中 open_tables 是当前打开的表的数量, Opened_tables 则是已经打开的表的数量)。即如果open_tables接近table_cache的时候,并且Opened_tables这个值在逐步增加,那就要考虑增加这个值的大小了。还有就是Table_locks_waited比较高的时候,也需要增加table_cache。 二、调整系统和数据库打开文件数目限制 table_cache加大后碰到文件描述符不够用的问题。这个时候就需要考虑提高系统和数据库的打开文件数目限制了。 1,显示当前系统的文件限制 # cat /proc/sys/fs/file-max 2,通过phpmyadmin查询mysql配置参数(既open files limit)。 一般情况下,mysql 5的open files limit会自动根据table cache调整。open files limit 系统默认调整为table cache的2倍多一点。 Generated by Bo-blog 2.1.1 Release