mysql性能优化
2020-05-26 本文已影响0人
程序员的自我修养
一、数据库优化的方向
1.SQL及索引
2.数据库表结构
3.系统配置
4.硬件
二、SQL语句优化
1.count()和max()的优化
eg:在一条SQL中同时查出2006年和2007年电影的数量--优化count()函数
SELECT COUNT( release_year ='2006' OR NULL) AS '2006年电影数量',COUNT( release_year = '2007' OR NULL) AS '2007年电影数量' FROM file;
优化max()函数--可以考虑用索引
2.优化子查询
通常情况下,需要把子查询优化为join查询,但在优化时要注意关联建是否有一对多的关系,要注意重复数据。
eg:SELECT title,release_year,LENGTH FROM file WHERE film_id IN(SELECT file_id FROM file_actor WHERE first_name = 'sandra')
3.优化group by 查询
eg:SELECT actor.first_name,actor.last_name,c.cnt FROM sakila.actor INNER JOIN(SELECT actor_id,COUNT(*) AS cnt FROM sakila.film_actor GROUP BY actor_id) AS c USING(actor_id);
4.优化limit查询