前言:
现在兄弟们对“sql 关键字”大概比较注意,大家都需要知道一些“sql 关键字”的相关内容。那么小编也在网摘上网罗了一些对于“sql 关键字””的相关内容,希望看官们能喜欢,咱们一起来了解一下吧!SQL 中需要针对关键字执行的优化包括 3 个:
exist / inorder by
对应的优化方法:
exist / in 有 2 种优化方式:
主查询的数据集大,则使用 in子查询的数据集大,则使用 exist
order by 有 5 种优化方式:
根据情况,选择使用单路排序、双路排序单路排序调整 buffer 的容量大小避免使用 select * ... 语句复合索引不跨列使用保证排序的一致性代码实例
实例 1:
目的:order by 单路排序,调整 buffer 的容量大小
总结:有可能不是一次 IO,超出 buffer 后可能会被强制双路。
如果 buffer 中可以放下排序字段,则一次单路即可。
如果数据量超大, buffer 中放不下排序字段,则会被强制双路。
实例 2:
目的:order by 双路排序
第一次排序,排 id 字段
第二次排序,排 name, age 字段
总结:
单路排序比双路排序占用更大的内存。
提高处理效率的方式是主动调整 buffer 的大小。
实例 3:
目的: order by 排序一致性
order by a desc, c desc
避免字段有的是升序,有的是降序
order by a asc, c desc
实例 4:
目的: order by 避免使用 select *
使用明确的字段指定:
select a, b, c, d from ...
替代模糊的:
select * from ...
实例 5:
目的: exist 使用
select tname from teacher where exists (null)
实例 6:
目的: in 使用
select * from A where id in (1, 3, 5)
标签: #sql 关键字