key_buffer_size
myisam表缓冲区的大小。这个大小的设置,可以通过sql语句show global status like 'key_read%';,然后用Key_reads /Key_read_requests 的值,如果这个值很大。就需要调大key_buffer_size的大小了。理论上来说,key_buffer_size越小越好,但是过小的话,容易造成内存浪费,一般来说能达到0.001以下就已经非常的好了。
table_open_cache
该值的设置可使用sql语句show status like 'open%tables';查看open_tables的值,如果跟table_open_cache相等,则就需要增加了。但是也要注意不能设置的太高。因为系统有文件描述符的限制,如果设置的太高也会造成性能的不稳定或者连接失败,所以要检测不能超过文件描述符的限制。比如打开myisam需要两个文件描述符。
sort_buffer_size
排序缓冲。我们可以通过增大该值来提高order by 或者 group by 的处理性能,一般设置2M或者4M之前尅满足大多数应用的需求,需要注意的是每次线程都会创建自己独立的缓冲区,而不是整个系统共享的缓冲区,不要因为设置的过大而造成系统的内存不足。
max_connections
指定MYSQL允许的最大连接进程数,如果在访问程序时经常出现TOO MANY CONNECTIONS的错误提示,则需要增大该参数值。默认值151。SHOW VARIABLES LIKE '%max_connections%';通过查看SHOW STATUS LIKE '%conn%';来设置。不能一味增大该值,否则内存吃不消
innodb_flush_log_at_trx_commit
抱怨Innodb比MyISAM慢100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电池供电缓存(Battery backed up cache)时。设成1对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统挂了时才可能丢数据。