刚刚学习到的技巧。
数据类型datetime 一般情况下使用date就可以了
如果要计数 不要使用count(*) , 使用 count(1)
select .. in () 如果是在数据库中连续的字段,可以使用 between 代替
where 条件中尽量不要使用函数, 可以把函数迁移到程序中,还可以把该函数中比较简单的逻辑抽取出来。
like '%....%' 中前面一个 '%'不要能去掉就去掉。
何时使用聚集索引或非聚集索引?
|
动作描述 |
使用聚集索引 |
使用非聚集索引 |
|
列经常被分组排序 |
应 |
应 |
|
返回某范围内的数据 |
应 |
不应 |
|
一个或极少不同值 |
不应 |
不应 |
|
小数目的不同值 |
应 |
不应 |
|
大数目的不同值 |
不应 |
应 |
|
频繁更新的列 |
不应 |
应 |
|
外键列 |
应 |
应 |
|
主键列 |
应 |
应 |
|
频繁修改索引列 |
不应 |
应 |
聚类索引只需要找到要检索的所有数据中的开头和结尾数据即可;而不像非聚集索引,必须先查到目录中查到每一项数据对应的页码,然后再根据页码查到 具体内容。
所以要不要使用ID 列作为聚集索引。聚集非聚集索引使用上的选择
何时使用聚集索引?
1.检索一定范围的数据
2.读取预先排序的数据
何时不适用聚集索引?
1.频繁更新的列
2.‘宽’的关键字
3.太多并行的顺序插入
在各个select语句前加:declare @d datetime set @d=getdate()
并在select语句后加: select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())
when create index
可以将非键列包含在include() 中
关注列的唯一性,列宽度, 列数据类型。特别是列顺序,这个很重要。
本文分享了SQL查询优化的关键技巧,包括数据类型、计数操作、连续字段查询、函数使用、LIKE子句优化及索引选择原则。重点讨论了何时使用聚集索引或非聚集索引,并提供了SQL查询性能分析方法。
546

被折叠的 条评论
为什么被折叠?



