一、影响性能的几方面
- 服务器硬件
- 服务器系统
- 数据库存储引擎的选择(插件式存储引擎):
myisam:不支持事务,表级锁 innodb:事务级存储引擎,完美支持行级锁,事务ACID特性
- 数据库参数配置
- 数据库结构设计和SQL语句
二、服务器硬件
衡量数据库处理能力的指标:
QPS:同时处理SQL的数据
-
CPU
CPU密集型(当前版本不支持多CPU对同一SQL并发处理):CPU频率
系统并发量(吞吐量):CPU数量
mysql版本:5.6之前的对多核CPU支持不好
不要在64位CPU上运行32位的系统,32位的操作系统,意味着不能使用大量的内存,任何一个单独的进程无法寻址到4G以上的内存
-
内存
myisam会把索引缓存到内存中,而数据通过操作系统来缓存
innodb会把索引和数据都缓存到内存中,从而提高数据的运行效率
内存越大越好,但是对性能影响有限,并不能无限地增加性能
内存频率意味着读写速度,应选择主板支持的最大内存频率
-
硬盘
传统机器硬盘:
RAID增强传统机器硬盘的性能:最常见,使用最多,价格低,单盘存储空间大,读写较慢 存储容量,传输速度,访问时间,主轴转速,物理尺寸(越小越好)
固态存储SSD和PCIe卡RAID是磁盘冗余队列的简称,简单来说RAID的作用就是可以把多个容量较小的磁盘组成一组容量更大的磁盘,并提供数据冗余来保证数据完整性的技术 常用RAID组别:RAID0、RAID1、RAID5、RAID10
网络存储NAS和SAN更好的随机读写性能,能更好的支持并发,更容易损坏 适用于存在大量随机I/O的场景 用于解决单线程负载的I/O瓶颈
是两种外部文件存储设备加载到服务器上的方法 SAN设备通过光纤连接到服务器,设备通过块接口访问,服务器可以将其当作硬盘使用。适用于大量顺序读写,读写I/o,缓存,I/O合并,随机读写慢,不如本地RAID磁盘。 NAS设备使用网络连接,通过基于文件的协议如NFS或SMB来访问。适用于数据库备份。
-
网络性能的限制
延迟、带宽
网络质量
采用高性能和高带宽的网络接口设备和交换机 对多个网卡进行绑定,增强可用性和带宽 尽可能地进行网络隔离