设计SQL语句的经验

在应用程序开发初期,由于数据库的数据比较少,体现不出SQL语句各种写法的性能优劣 ,但是如果将应用程序提交实际应用后,随着数据库中的数据增加,系统地响应速度就成为需要解决的最主要的问题之一。系统优化中的一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个一个系统不是简单地能实现qigongneng就可,而是要写出高质量的SQL语句,提高系统地可用性。常见编写高质量的SQL语句的原则的如下:

  • 不要在 SQL语句中使用系统默认的保留关键字
  • 尽量用 EXISTS 和 NOT EXISTS 代替 IN 和 NOT IN
  • 尽量不用 SELECT * FROM ....,而要字段名 SELECT field1,field2,....
  • 在SQL查询中应尽量使用索引来加快查询速度
  • ORDER BY 语句决定了如何对返回的查询结果进行排序。ORDER BY 语句对姚排序的列没有什么特别的限制,也可以将函数加入列中。任何在 ORDER BY 语句的非索引项或者由计算表达式都将降低查询速度。重写 ORDER BY 语句可以使用索引,也可以为所使用的列建立另外一个索引,同时应绝对避免在 ORDER BY 子句中使用表达式
  • 任何在 WHERE 子句中使用 IS NULL 或  IS NOT NULL 的语句不允许使用索引,所以执行的效率较低
  • 通配符(%)在搜寻词首出现,系统不使用索引,ruci使用降低查询速度。当通配符出现在字符串的其他位置时,优化器就能利用索引
  • 在海量数据的SQL查询语句中尽量少用格式转换
  • 任何对列的操作都将导致表扫描,它包括数据库函数,计算表达式等等,查询时要尽可能将操作移至等号右边
  • IN OR 子句常会使用工作表,是索引失效。如果不产生大量重复值,可以考虑把子句拆开。拆开的子句应该包含索引
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值