是什么影响了MySQL性能?
影响性能的一些常见因素
-
服务器硬件
-
服务器系统
-
数据库存储引擎
-
- MyISAM:可以很好的利用内存,但不支持事务,表级锁
- InnoDB:事务级存储引擎,完美支持行级锁以及事务ACID特性
-
数据库参数配置
-
数据库表结构设计和SQL语句执行效率
-
数据库的版本
CPU资源和可用内存大小
在服务器硬件中,最容易影响数据库性能的是CPU资源和可用内存大小以及I/O。
选择CPU时需要考虑的点:
- 我们的应用是否是CPU密集型?如果是CPU密集型,则需要计算能力强的CPU,即频率高的
- 我们的应用并发量如何?如果并发量大的话,就需要选择更多核心的CPU来提高吞吐量。若选择多核心的CPU的话,最好使用MySQL5.6以上的版本,因为低版本对多核心的CPU支持得不是很好
- 注:MySQL目前不支持多CPU对同一SQL进行并发处理。
- 注:不要在64位的CPU上使用32位的操作系统
内存:
- 容量越多越好,但对性能影响有限,因为并不能无限的增加性能
- 主频则选择服务器主板可支持的最高频率最好
传统的机械磁盘
使用传统机器磁盘。机械硬盘读取数据的过程:
- 移动磁头到磁盘表面上的正确位置
- 等待磁盘旋转,使得所需的数据在磁头之下
- 等待磁盘旋转过去,所有所需的数据都被磁头读出
注:第一步+第二部=磁盘的访问时间。第三步消耗的时间=磁盘的传输速度
所以选择机械硬盘主要参考以下几个点:
- 存储容量
- 传输速度
- 访问时间
- 主轴转速
- 物理尺寸
使用RAID增强传统机器磁盘的性能
RAID:
- RAID是磁盘冗余队列的简称(Redundant Arrays of Independent Disks)
- 简单来说RAID的作用就是可以把多个容量较小的磁盘,组成一组容量更大的磁盘,并提供数据冗余来保证数据完整性的技术
常用的RAID模式 - RAID 0:
RAID 0是最早出现的RAID模式,也称之为数据条带。是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。 RAID 0没有提供冗余或错误修复能力,但是实现成本是最低的
RAID 0 模式结构图:
常用的RAID模式 - RAID 1:
RAID 1又称磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性。
RAID 1 模式结构图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cyYXYyPf-1661909823676)(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==)]
常用的RAID模式 - RAID 5:
RAID 5又称之为分布式奇偶校验磁盘阵列通过分布式奇偶校验块把数据分散到多个磁