MySQL的优化方面比较多,我们可以从存储引擎、数据类型、范式、索引、分库分表等方面进行优化。
1、存储引擎方面:选择合适的存储引擎,当并发量较小,并且对事务、外键等无要求的情况下,我们可以使用MyISAM存储引擎来存储数据,当并发量较多时,选择InnoDB存储引擎。
2、数据类型方面:我们选择数据类型的原则是:内存占用量比较小,选取定长类型。
3、范式:创建表时,应该满足数据库的三大范式。
4、索引方面:创建合适的索引。避免索引失效。
5、合理的使用select结果值:尽量避免使用select *
来进行查询,我们需要查什么属性,select后面就跟什么属性。
6、必要的情况下,可以使用force index + 索引名进行强制使用索引查询。
7、应尽量避免使用子查询
8、用IN来替换OR:MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也比较大。
9、禁止不必要的ORDER BY排序
10、优化GROUP BY语句:如果对GROUP BY语句的结果没有排序要求,要在语句后加order by null(group默认会去排序)。 尽量让group by使用表的索引。