程序员MySQLSQL极简教程 · MySQL · MyBatis · JPA 技术笔记 教程 总结

《MySQL技术内幕:InnoDB存储引擎》第九章 性能调优

2019-02-27  本文已影响16人  半亩房顶

9.1 选择合适的CPU

数据库应用分为两类,OLTP(Online Transaction Processing,在线事务处理)和OLAP(Online Analytical Processing,在线分析处理)
InnoDB一般都用于OLTP,这种应用有如下特点:

可以看出OLTP应用对于CPU要求并不高,因为复杂的查询可能需要执行比较、排序、连接等非常耗CPU的操作,这些操作在OLTP的数据库应用中很少发生。因此,可以说OLAP是CPU密集型操作,而OLTP是IO密集型的操作。
为了获得更多内存的支持,CPU必须支持64位的应用。
从InnoDB存储引擎的设计架构上来看,其主要的后台操作都是在一个单独的MASTER THREAD中完成的,因此并不能很好的支持多核的应用。不过新的InnoDB Plugin版本在各种测试下已经显示对多核CPU的处理性能有了极大的提高。所以,CPU支持多核,选择InnoDB Plugin更好,且可以修改参数Innodb_read_io_threads 、 innodb_write_io_threads来增大IO的线程,更充分利用CPU的性能

内存的重要性

innoDB会缓存数据、索引在缓存池中,所以,内存的大小对于性能影响很大


内存对InnoDB性能影响

所以,在开发应用时,预估“活跃”数据库大小可能会是多少,由此确定服务器内存的大小。
可以通过以下数据判断内存是否达到瓶颈,通常InnoDB缓冲池命中率不应该小于99%


状态参数

当然,内存足够大,依然会有脏页异步写入磁盘,事务提交写入重做日志文件等IO操作。

9.3 硬盘对数据库性能的影响

9.3.1 传统机械硬盘

9.3.2 固态硬盘

9.4 合理地设置RAID

RAID(Redundant Array of Independent Disks,独立磁盘冗余数组)的基本思想,就是把多个相对便宜的硬盘组合起来,成为一个磁盘数组,使性能达到甚至超过一个价格高昂容量巨大的硬盘。作用如下:

9.4.2 RAID Write Back功能

先将数据放在缓存中,延迟写入磁盘,提高性能,但是需要防止故障时损坏数据。
对此,大部分的硬件RAID卡都提供了电池备份单元

9.4.3 RAID 配置工具

9.5 操作系统的选择也很重要

除了linux外
Solaris也是个不错的选择
Windows下需要注意表名不区分大小写

9.6 不同的文件系统对数据库性能的影响

9.7 选择合适的基准测试工具

待看

上一篇 下一篇

猜你喜欢

热点阅读