选择合适的CPU
innodb一般都应用于OLTP的数据库应用,这种应用有以下特点:
- 用户的操作并发量大
- 事务处理的时间一般比较短
- 查询的语句较为简单,一般走索引
- 复杂的查询少
由上可知OLTP是IO密集型操作,而OLAP是cpu密集型操作。面对OLTP应用应该将更多注意力放在提高IO的配置上。
内存的重要性
内存的大小最能直接反应数据库的性能。
硬盘对数据库性能的影响
- 传统的机械硬盘
机械硬盘有两个重要的指标:一个是寻道时间,另一个是转速。 - 固态硬盘
固态硬盘其内部是由闪存组成。不同于传统机械硬盘,闪存是一个完全的电子设备,没有传统机械硬盘的读写磁头。因此固态硬盘不需要花费大量的时间用于磁头旋转和定位来查找数据,所以固态硬盘可以提供一致的随即访问时间。
不过闪存中的数据不可更新,只能通过扇区的覆盖重写,需要在覆盖重写之前进行非常耗时的擦除操作。而且擦除有次数限制。
合理地设置RAID
RAID类型
RAID的作用:- 增强数据集成
- 增强容错功能
- 增加处理量和容量
根据不同的磁盘组合方式,有以下常见RAID的组合:
- RAID 0:将多个磁盘合并成一个大磁盘,不会有冗余,并行IO,速度最快。
- RAID 1:两组以上的N个磁盘相互作为镜像,在一些多线程操作系统中能有很好的读取速度,但写入速度略有降低。除非拥有相同数据得主磁盘和镜像同时损坏,否则只要有一个磁盘正常即可维护运作,可靠性最高。
- RAID 5:是一种存储性能、数据安全和存储成本兼顾的存储解决方案。使用的是Disk Striping(硬盘分区)技术。RAID5至少需要三个硬盘。
- RAID 10和RAID 01:RAID 10是先镜像再分区数据,将所有硬盘分为两组,视为RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 01则与RAID 10的程序相反,先分区再将数据映射到两组硬盘。
- RAID 50:也被称为镜像阵列条带,由至少六块硬盘组成,像RAID 10一项,数据被分区成条带,再同一时间内向多块磁盘写入;像RAID 5一样,也是数据的校验位来保证数据的安全,且校验条带均匀分布在各个磁盘上,目的在于提高RAID 5的读写性能。
RAID Write Back功能
RAID Write Back是指RAID控制器能够将写入的数据放入到自身的缓存中,并把它们安排到后面在执行。这样不用等待物理磁盘实际写入的完成,使得写入更快。
当操作系统或数据库关机时,Write Back可能会破坏数据库的数据。
选择合适的基准测试工具
- sysbench
sysbench是一个模块化、跨平台的多线程基准测试工具,主要用于不同系统参数下的数据库负载情况,主要有以下几种测试方式:- CPU性能
- 磁盘IO性能
- 调度程序性能
- 内存分配及传输速度
- POSIX线程性能
- 数据库OLTP基准测试
- mysql-tpcc
TPC-C的性能度量单位是tpmC,tpm是transaction per minute的缩写,C代表TPC的C基准测试,该值越大,代表事务处理的性能越高。
tpcc-mysql由以下两个工具组成:- tpcc-load:根据仓库数量,生成9张表中的数据
- tpcc-start:根据不同选项进行TPC-C测试