[MySQL优化] -- 如何查找SQL效率地下的原因 | |
|
|
来源: ChinaUnix博客 日期: 2009.07.20 16:12 (共有条评论) 我要评论 | |
查询到效率低的 SQL 语句 后,可以通过 EXPLAIN 或者 DESC 命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序,比如我们想计算 2006 年所有公司的销售额,需要关联 sales 表和 company 表,并且对 profit 字段做求和( sum )操作,相应 SQL 的执行计划如下: mysql> explain select sum(profit) from sales a,company b where a.company_id = b.id and a.year = 2006\G; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: a type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 12 Extra: Using where *************************** 2. row *************************** id: 1 select_type: SIMPLE table: b type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 12 Extra: Using where 2 rows in set (0.00 sec) 每个列的解释如下:
在上面的例子中,已经可以确认是 对 a 表的全表扫描导致效率的不理想,那么 对 a 表的 year 字段创建索引,具体如下: 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93470/showart_2001531.html |
相关文章
- 10-06mysql处理上百万条的数据库如何优化语句来提高处理查询效率
- 10-06MySQL 5.7 优化SQL提升100倍执行效率的深度思考(GO)
- 10-0619 个让 MySQL 效率提高 3 倍的 SQL 优化技巧
- 10-06mysql性能优化学习笔记(2)如何发现有问题的sql
- 10-06MySQL中如何查看“慢查询”,如何分析执行SQL的效率?
- 10-06如何查找MySQL中查询慢的SQL语句(转载)
- 10-06优化、分析Mysql表读写、索引等操作的sql语句效率优化问题
- 10-06MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍
- 10-06MySQL5.6 如何优化慢查询的SQL语句 -- SQL优化
- 10-06BATJ解决千万级别数据之MySQL的SQL如何优化?本文详细讲解