本文整理自网络,侵删。
目录
- 笛卡尔连接
- 分页limit的sql优化的几种方法
- count 优化方案
笛卡尔连接
例1: 没有携带on
的条件字句,此条slq查询的结构集等价于,a
表包含的条数*b
表包含的乘积:
select * from table a cross join table b;
例2:拥有携带on字句
的sql,等价于inner join
:
select * from table a cross join table b on a.id=b.id;
分页limit的sql优化的几种方法
规则;表包含的数据较少的数据量,作为驱动表(小表驱动大表,一般mysql的优化器会做出相应的优化的,但是为了防止一些抽风现象可以用STRAIGHT_JOIN,作用会强制使用左边的表作为驱动表)。
例1:
select * from table c straight_join table d on c.id=d.id;
覆盖索引:
select 主键字段或者创建过索引的字段 from table limit 300000,10
索引覆盖+inner (业界常用的优化方案)
select * from table a inner join ( select 创建索引的字段 from table limit 30000,10) b on b.创建索引的字段=a.创建索引的字段 (也可以更换为 using (创建索引的字段))
索引覆盖+子查询 先获取分页起始的最小值,然后再获取后10条 (业界常用的优化方案)
select * from table where 主键字段或者创建过索引的字段 >= (select 主键字段或者创建过索引的字段 from table 300000,1) limit 10;
范围查询+limit语句 获取上一页的主键最大值,然后进行获取后面的数据;
相关阅读 >>
sqlserver使用 case when 解决多条件模糊查询问题
oracle使用sql语句增加字段示例(sql删除字段语句)
sql server使用pivot与unpivot实现行列转换
更多相关阅读请进入《sql》频道 >>

数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » SQL性能优化方法及性能测试
标签:sql
相关推荐
评论
管理员已关闭评论功能...