首页 > 代码库 > 5种提升SQL查询性能的知识
5种提升SQL查询性能的知识
“SQL性能优化是一种黑魔法
就像炼金术一样:
各种配方难解晦涩,
只有一小部分圈内人才能理解。”
这是一种误解,SQL数据库使用的是大家公知的算法来实现可以预期的执行性能。然而,问题是,人们很容易写出不能发挥最高效算法的SQL查询语句,因而也容易产生无法预期的性能结果。
下面是5道关于SQL性能优化小测试题,这些测试题也许会让你坚信SQL优化就是一种黑魔法。但答案中提供的解释说明会随即让你明白,这些所谓的黑魔法其实是纯粹的科学。
本测试中使用的SQL是基于Oracle数据库。
单从性能的视角看,下面的这些SQL写法是好的还是不好的?
1、
查询出年是2012的所有行:
- 没问题,不可能再有重大的改进。
- ?有问题,还可以做重大的优化。
?- 没问题,不可能再有重大的改进。
2、
查询出最近日期的一行数据:
- ?没问题,不可能再有重大的改进。
- 有问题,还可以做重大的优化。
?- ?没问题,不可能再有重大的改进。
3、
两个查询语句,通过一个普通列查询:
- 没问题,不可能再有重大的改进。
- ?有问题,还可以做重大的优化。
?- 没问题,不可能再有重大的改进。
4、
查询一个字符串:
- 没问题,查询效率会很快
- ?有问题,可能会产生严重的性能问题
?- 没问题,查询效率会很快
5、
如果从百万行数据中查询出几千行时,我们使用:
而当我们只需要从百万行数据中查询出10行时,SQL可以改成这样:
- 两种情况下执行性能差不多(+/-10%)
- 要看是什么数据
- ?修改后的SQL效率会很慢(降低至少10%)
- 修改后的SQL效率会很高(提高至少10%)
?- 两种情况下执行性能差不多(+/-10%)
5种提升SQL查询性能的知识
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。