SQL语句的事件花在哪儿?
- 执行时间
- 等待时间
这两个时间并非孤立的,如果单条语句执行的快了,那么其他语句的锁定的时间也就少了。所以我们分析如何降低执行时间。
SQL语句的执行时间又花在哪儿了?
- 查找
- 沿着索引查找,最慢的情况是全表扫描
- 取出
- 查到后,把数据取出来并返回给客户端
如何查询的快?
- 查的快:联合索引的顺序、区分表、长度
- 取的快:索引覆盖
- 传输的少:取更少的行和列
- 切分查询:按数据拆成多次,如:插入10000条数据,每1000条为单位插入
- 分解查询:按逻辑把多表联查,拆分成多个简单查询
SQL优化思路
不查 -> 少查 -> 高效的查
- 不查:通过业务逻辑来计算
- 少查:尽量精准数据、少取行。如:我们观察新闻网站、评论内容等,一般一次性取列表10~30条左右。
- 高效的查询:尽量走在索引上查询,取时尽量少取列
例如:
select * from tabA; # 就取出来所有列,不建议这么做
select * from tabA, tabB; # 取出A、B表所有列
网友评论