高效的SQL查询

2016-05-24 16:00
瞿锴
T1

什么是高效

用更短的时间获得相同的结果集

怎么查

又讲了从公司到圆融的那个梗,呵呵哒~~~

怎么写

1、不要写select * 要写成具体的列名
表的字段可能会变多,但固定的业务需要查询的字段通常是有限的固定的
2、testtable要写成testdb.dbo.testtable
拆库方便(99%的原因);减少查表的时间(1%的原因)
Q:如果将来迁表了怎么办?
A:库名+表名赋给一个全局变量,迁表的时候改变全局变量值即可
3、加with(nolock)
降低事务隔离级别;但是会导致脏读
4、SQL语句中不要存在隐式的数据类型转换
隐式的数据类型转换会导致索引失效,从而导致全表扫描,降低效率
5、不要有”%abc%”,可以想办法写成”abc%”去实现业务要求
因为后者可以用索引,而前者不能
6、条件里尽量不要使用函数,但是输出字段上可以使用函数
使用函数时会导致全表扫描
7、排序时尽量用主键

业务逻辑会影响查询的效率吗?

其实最后这部分内容,主要是讲了一个故事,想要表达的思想就是,程序员是有思想有主见的,而不是简单的翻译者,在拿到UI的设计稿时,不是简单的翻译成程序或系统,而是要带着思考,去多问几个为什么,有意义吗?
嗯,以上。

附件

    原文作者:心彻
    原文地址: https://www.jianshu.com/p/0df93e397bfe
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞