【三分钟小测试】你对SQL性能优化知识知多少?

“SQL性能优化是一种黑魔法
就像炼金术一样:
各种配方难解晦涩,
只有一小部分圈内人才能理解。”

这是一种误解,SQL数据库使用的是大家公知的算法来实现可以预期的执行性能。然而,问题是,人们很容易写出不能发挥最高效算法的SQL查询语句,因而也容易产生无法预期的性能结果。

下面是5道关于SQL性能优化小测试题,这些测试题也许会让你坚信SQL优化就是一种黑魔法。但答案中提供的解释说明会随即让你明白,这些所谓的黑魔法其实是纯粹的科学。

本测试中使用的SQL是基于Oracle数据库。

单从性能的视角看,下面的这些SQL写法是好的还是不好的?

1、查询出年是2012的所有行:

    1. 没问题,不可能再有重大的改进。
    2. 有问题,还可以做重大的优化。

2、查询出最近日期的一行数据:

    1. 没问题,不可能再有重大的改进。
    2. 有问题,还可以做重大的优化。

3、两个查询语句,通过一个普通列查询:

    1. 没问题,不可能再有重大的改进。
    2. 有问题,还可以做重大的优化。

4、查询一个字符串:

    1. 没问题,查询效率会很快
    2. 有问题,可能会产生严重的性能问题

5、如果从百万行数据中查询出几千行时,我们使用:

而当我们只需要从百万行数据中查询出10行时,SQL可以改成这样:

    1. 两种情况下执行性能差不多(+/-10%)
    2. 要看是什么数据
    3. 修改后的SQL效率会很慢(降低至少10%)
    4. 修改后的SQL效率会很高(提高至少10%)

37 Responses to 【三分钟小测试】你对SQL性能优化知识知多少?

  1. rgfdsa 对这篇文章的反应是垃圾
  2. ggg 对这篇文章的反应是俺的神呀
  3. 李景博  这篇文章
  4. 段毅 对这篇文章的反应是赞一个
  5. slowlyheart 对这篇文章的反应是赞一个
  6. 王莉 对这篇文章的反应是赞一个
  7. 阿荣 对这篇文章的反应是飘过~
  8. cpthack 对这篇文章的反应是垃圾
  9. 朱向斌 对这篇文章的反应是赞一个
  10. 陈春霖 对这篇文章的反应是俺的神呀
  11. 1 对这篇文章的反应是垃圾
  12. 张虞 对这篇文章的反应是标题党
  13. 单守臣  这篇文章
  14. qiulihua 对这篇文章的反应是mark
  15. Frank Feng 对这篇文章的反应是赞一个
  16. dragon 对这篇文章的反应是赞一个飘过~
  17. 唐进山 对这篇文章的反应是俺的神呀mark
  18. 冯先森 对这篇文章的反应是俺的神呀
  19. Alex.Lok 对这篇文章的反应是赞一个
  20. 李丹  这篇文章, 并对这篇文章的反应是赞一个敬佩
  21. 罗艳周 对这篇文章的反应是俺的神呀
  22. FemaleProgrammer 对这篇文章的反应是俺的神呀
  23. mrcheng 对这篇文章的反应是俺的神呀
  24. Adrien 对这篇文章的反应是俺的神呀赞一个
  25. 黄浩男 对这篇文章的反应是俺的神呀
  26. 唐三 对这篇文章的反应是赞一个
  27. 程军 says:

    还不错.

  28. 阿荣 says:

    还不错——————

  29. David says:

    第2道测试题:
    里面那个语句的排序没有必要吧,多余,这样会降低的查询速度
    这个语句是有问题的

  30. 小兔子 says:

    呵呵,不错。

  31. lfree says:

    5道题中你答对了 5 题
    你很擅长SQL性能优化,看来是一个数据库高手

  32. 滩头沙 says:

    第二题有问题吧!

  33. lx says:

    第二题有问题。

  34. JackNiu says:

    还不错,其中的一些都是在平时遇到的

  35. walt says:

    答案没有?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注