5段SQL可以测试出你对SQL性能优化知识了解多少

转载 2014年10月28日 15:00:52
数据库是很强大的,它可以实现超预期的执行性能。但是很多人很容易写出不能发挥最高效算法的SQL查询语句,因而也容易产生无法预期的性能结果。

下面UncleToo为大家整理出5段SQL,都是大家平时经常写的SQL,但是稍微经过一些优化,或者换种写法,也许他的执行效率就会高出好几倍,大家也可以对照自己平时的写法,看看自己是否还有继续学习的空间。

本文介绍的SQL是基于ORACLE数据库的。

1、查询2014年所有的行


有过SQL优化经验的人也许会问,这样写没问题啊,将出现在条件中的字段加索引,可以起到优化SQL的作用,怎么会有问题呢?有这样疑问的朋友对数据库优化还是有所了解的,但是你忽略了一点:不管是ORACLE还是其他数据库,一旦将字段放在函数里执行,该字段的索引将不起作用。那么正确的写法如下:



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


这段SQL很经典,开发中很多地方都可能会用到类似这样的查询。没错,这段SQL是不需要优化的,它可以按照经过索引的 Top-N 查询方式执行,它的效率跟 INDEX UNIQUE SCAN(唯一索引扫描) 是等效的,所以会非常快。

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




这个很简单,只有第一个SQL用到了索引,而第二个却无法使用索引。其实这就是单索引与组合索引在使用上的区别。

4、字符串模糊查询


在前面的文章中,我们曾经说过 like 语句如何使用通配符才能提高效率(8个SQL语句常用优化技巧)。当条件中遇到 like 语句,那么无论该字段是否设置索引效果都一样,因为索引遇到 like 就会无法发挥其效能,而且也没有更好的解决办法,因此建议大家除非万不得已,否则不要轻易使用 like 语句。

5、查询某条件下的记录数


上面两条查询语句,第一条可能会查出几千或者几万条记录,而第二条语句因为多了一个条件可能只查出几条或几十条记录,也许大家会认为第二条语句的效率更快。其实刚好相反,第一条语句的执行效率更快。因为第一条语句中,索引覆盖了所有查询字段,而第二个SQL中的b条件没有索引。

一份基本的SQL测试题

 数据库基础测试题 姓名:          工号:     一、单项选择题,把合适的选项编号填写在括号内。(每小题1分,共10分) 1.在数据库技术中,实体-联系模型是一种( A )A.概念数据模型...
  • caiqcong
  • caiqcong
  • 2009年06月23日 14:16
  • 10762

测试人员的SQL语言 系列

测试过程中经常会涉及到数据库的数据检查,那么掌握SQL语言对测试来讲是必不可少的了,所以在此开本系列。本系列主要是讲解数据库的增删改查功能,我们的重点放在了查询上。 数据库基础 对...
  • xc5683
  • xc5683
  • 2013年03月15日 15:34
  • 27197

Sevelt3.0新特性总结

背景:         最近在给领导部署演示环境的时候发生了很恶心的问题。资源和jar包好之后,服务器总是起不来,一直包各种错误,然后切换JDK,使用各种版本的Spring Jar包都不可以,而且每...

简易高重用的jdbcutils工具封装实现类以及简易连接池实现

由于现在发现做个小项目都是导入n多的依赖包,很烦琐,只想快点开发完一个个的小需求项目,这个时候真心不想用框架,只能自己写个jdbcutils,虽然网上有很多有apache的,阿里的,但是感觉用过后都不...

5段SQL可以测试出你对SQL性能优化知识了解多少

5段SQL可以测试出你对SQL性能优化知识了解多少   数据库是很强大的,它可以实现超预期的执行性能。但是很多人很容易写出不能发挥最高效算法的SQL查询语句,因而也容易产生无法预期的性能结果。 ...

5段SQL可以测试出你对SQL性能优化知识了解多少

数据库是很强大的,它可以实现超预期的执行性能。但是很多人很容易写出不能发挥最高效算法的SQL查询语句,因而也容易产生无法预期的性能结果。 下面UncleToo为大家整理出5段SQL,都是大家平时...

5段SQL可以测试出你对SQL性能优化知识了解多少

数据库是很强大的,它可以实现超预期的执行性能。但是很多人很容易写出不能发挥最高效算法的SQL查询语句,因而也容易产生无法预期的性能结果。        下面UncleToo为大家整理出5段SQL,都...
  • zzm628
  • zzm628
  • 2016年05月11日 18:20
  • 598

你对SQL性能优化知识知多少?

你对SQL性能优化知识知多少

测试并发与优化多线程、大批量处理SQL性能的一些心得(有心得就会更新)

线程池的配置与并发优化处理,SQL优化性能的一些心得
  • liud1
  • liud1
  • 2016年12月26日 12:55
  • 1555
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:5段SQL可以测试出你对SQL性能优化知识了解多少
举报原因:
原因补充:

(最多只允许输入30个字)