1.mysql内存优化原则
a. 将尽量多的内存分配给mysql做缓存,但是也要给操作系统和其他程序预留足够内存。
b. MyISAM的数据文件读取依赖于操作系统的io,因此如果有MyISAM表,就要预留更多的内粗给操作系统做io缓存。
c. 合理设置排序区、链接区等缓存大小。
2.MyISAM内存优化
MyISAM没有特别的缓存机制,完全依赖于操作系统的io缓存
2.1 key_buffer_size
2.2 read_buffer_size和read_rnd_buffer_size
如果需要经常顺序扫描MyISAM表,可以通过增大read_buffer_size的值来提高性能。但是要注意它是每个session独占的,如果默认值太大,就可能浪费内存,造成物理内存耗尽。
对于要做排序的MyISAM表查询,如带有order by子句的sql,适当增大read_rnd_buffer_size,来改善性能。它也是每个session独占的。
3 InnoDB内存优化
InnoDB的缓存机制和MyISAM不太相同。InnoDB用一块内存区做IO缓存池,该缓存池不仅用来缓存InnoDB的索引块,也用来缓存数据块。
3.1 innodb_buffer_pool_size
innodb_buffer_pool_size决定InnoDB缓存区大小 就是上面提到的内存区。在保障操作系统及其他程序有足够的内存可用的情况下该值越大,性能越好。
3.2 调整innodb_log_buffer_size
innodb_log_buffer_size决定InnoDB重做日志缓存池的大小。对于一个会在事务中更新、插入、删除大量记录的应用,可以提高innodb_log_buffer_size来提高事务处理的性能。
还有一个参数
max_connections 并发连接数,决定允许连接到mysql数据库的最大数量,linux操作系统下, mysql支持500-1000不是问题
来源:CSDN
作者:xuxxxweb
链接:https://blog.csdn.net/qq_22323251/article/details/80258402