一、硬件和操作系统层面的优化
二、架构设计层面的优化
1.搭建MySQL主从集群 保证服务的高可用性
2.读写分离 避免读写冲突导致的性能问题
3.分库分表 分库降低单个服务器IO压力 分表降低单表数据量 提升SQL查询效率
4.针对热点数据引入更为高效的分布数据库:Redis、MongoDB等 缓解MySQL访问压力提升数据的检索性能
三、MySQL程序配置优化
根据实际情况修改MySQL配置文件(my.ini/my.cnf)中的默认配置来优化
四、SQL语句优化
1.尽量避免使用子查询采用join关联方式
2.避免出现 select *
3.多表关联查询时,小表在前,大表在后,先扫小表,扫描快效率较高,再扫描后面的大表,可能只需扫描大表的前 100 行就符合返回条件并 return 了。
4.使用 GROUP BY 没有排序的要求时,指定 ORDER BY NULL 禁止排序(group by 默认会排序)。
SELECT col1, col2, COUNT(*) FROM table GROUP BY col1, col2 ORDER BY NULL ;