MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供 101 条优化 MySQL 的建议。有些技巧适合特定的安装环境,但是思路是相通的。我已经将它们分成了几类以帮助你理解。
MySQL监控
MySQL服务器硬件和OS(操作系统)调优:
1、有足够的物理内存,能将整个InnoDB文件加载到内存里 —— 如果访问的文件在内存里,而不是在磁盘上,InnoDB会快很多。
2、全力避免 Swap 操作 — 交换(swapping)是从磁盘读取数据,所以会很慢。
3、使用电池供电的RAM(Battery-Backed RAM)。
4、使用一个高级磁盘阵列 — 最好是 RAID10 或者更高。
5、避免使用RAID5 — 和校验需要确保完整性,开销很高。
6、将你的操作系统和数据分开,不仅仅是逻辑上要分开,物理上也要分开 — 操作系统的读写开销会影响数据库的性能。
7、将临时文件和复制日志与数据文件分开 — 后台的写操作影响数据库从磁盘文件的读写操作。
8、更多的磁盘空间等于更高的速度。
9、磁盘速度越快越好。
10、SAS优于SATA。
11、小磁盘的速度比大磁盘的更快,尤其是在 RAID 中。
12、使用电池供电的缓存 RAID(Battery-Backed Cache RAID)控制器。
13、避免使用软磁盘阵列。
14. 考虑使用固态IO卡(不是磁盘)来作为数据分区 — 几乎对所有量级数据,这种卡能够支持 2 GBps 的写操作。
15、在 Linux 系统上,设置 swappiness 的值为0 — 没有理由在数据库服务器上缓存文件,这种方式在Web服务器或桌面