优化慢SQL是关键,大部分情况下,大量的慢SQL是导致性能低下的首要“元凶”,有专门的DBA来审核开发写的SQL语句,通过这样的审核,在上线前,可避免线上遇到问题,那么什么硬件因素会导致MySQL性能下降?
影响MySQL InnoDB引擎性能的最主要因素就是磁盘I/O,目前磁盘都是机械方式运作的,主要体现在读写前寻找此道的过程中。磁盘自带的读写缓存大小,对于磁盘的读写速度至关重要。
读写速度快的磁盘,通常都带有较大的读写缓存。磁盘的寻道过程是机械方式,决定了其随机读写速度将明显低于顺序读写。在多进程或多线程并发读取磁盘的情况下,每次执行读写操作,磁盘可能存在较大的偏移,磁盘寻址时间加大,将会导致磁盘I/O性能急剧下降。
从很多新特性来看,几乎都是围绕着如何充分利用内存,如何减少磁盘I/O来展开的,例如:innodb_io_capactiy参数,可以加大每秒刷新脏页的数量。因此在单块磁盘遇到了I/O瓶颈时,可以把磁盘升级为RAID或SSD固体硬盘来提升性能,SSD固态硬盘的特点是:不用磁头读取数据,寻道时间几乎为0,快速的随机读写,延迟极小,当然价格也很昂贵。
目前在生产环境中主要采用RAID10、RAID5,对于数据读写操作频繁的表或数据库,可以适当采用将数据分级存储在SSD固态电子硬盘中的方式,速度会得到较大提升!