MySQL数据库优化主要涉及两个方面,一方面是对SQL语句优化,另一方面是对数据库服务器和数据库配置的优化。
数据库优化
SQL语句优化
为了更好的看到SQL语句执行效率的差异,建议创建几个结构复杂的数据表,多导入一些数据进行测试,看到的效果比较直观。
-
尽量避免在列上进行运算,这样会导致索引失效。
优化前
SELECT * FROM t WHERE YEAR(d)>=2011;
优化后
SELECT * FROM t WHERE d>=‘2011-01-01‘;
-
使用JOIN时,应该用小结果集驱动大结果集。同时把复杂的JOIN查询拆分成多个Query。因为JOIN多个表时,可能导致更多的锁定和堵塞。
不建议:
SELECT * FROM a JOIN b ON a.id=b.id LEFT JOIN c ON c.time=a.date LEFT JOIN d ON c.pid=b.aid LEFT JOIN e ON e.cid=a.did;
-
注意LIKE模糊查询的使用,避免%%。
优化前
SELECT * FROM t WHERE name LIKE ‘