MySQL性能调优方案
1、选择合适的CPU
当前数据库应用类型一般分为两类:OLTP(在线事物处理)、OLAP (在线分析处理) ,OLAP多用于数据仓库或数据集市中,一般需要执行复杂的SQL语句查询;OLTP多用于日常事物处理中,入银行交易。相比于OLAP,OLTP数据库容量相对较小。
InnDB一般都应用于OLTP数据库应用,这种应用的特点有:
1、用户操作并发量大
2、事务处理时间一般比较短
3、查询事物的语句比较简单、一般走索引
4、复杂查询少
可以看出,OLTP的数据库应用本身对CPU要求不高,因为复杂查询可能执行比较、排序、连接等非常耗CPU的操作。但是在OLTP数据库应用中较少发生。因此、可以说OLTP是IO密集型的操作、而OLAP是CPU密集型的操作。可以根据数据库应用类型购买对应的设备。
2、合适的内存大小
测试证明:数据库的性能随着缓冲区的增大,会极大提高。所以,开发应用前应该预估活跃数据库大小,以确定服务器内存大小。当然,使用更多的内存还必须使用64位操作系统。
如何判断当前数据库内存是否达到瓶颈?可以查看当前数据库状态,可以根据磁盘读取和内存读取的比例还判断缓冲区命中比例,通常InnoDB存储引擎缓冲池命中率不应该小于99%。
即使缓冲区大小已经大于数据库大小,这也不意味着没有磁盘操作。数据库缓冲区只是一个存放热点的区域,后台线程还负责把脏页异步写入磁盘。每次提交事物,还必须把 日志写入重做日志文件。
3、硬盘对数据库影响
可以在内存缓冲区和传统存储层之间建立一层闪存固态硬盘的二级缓冲池,以扩充缓冲池大小,提高数据库性能
4、合理的设置RAID
RAID(独立磁盘冗余数组)的基本思想就是把多个相对便宜的磁盘组合成一个磁盘数组,使性能达到甚至超过一个价格昂贵、容量巨大的磁盘。
5、操作系统选择
Linux系统是MYSQL数据库最长使用的操作系统。