陷阱~SQL全表扫描与聚集索引扫描
2024-10-15 11:29:28
SqlServer中在查询时,我们为了优化性能,通常会为where条件的字段建立索引,如果条件比较固定还会建立组合索引,接下来,我们来看一下索引与查询的相关知识及相关陷阱。
SQL表自动为主键加聚集索引的猜想
我认为应该是对查询的优化,因为如果聚集(最多只能有一个)索引的话,在SQL查询时,将进行全表扫描,反之,进行聚集索引(B树结构)扫描,这将大大加快检索的速度;有时,我们感觉对主键(自增的)加聚集索引没什么用,所以就把它改为非聚集索引,但当我们为表的其它字段索引后,发展查询时没有按着索引检索,而是全表扫描,这是为何?原因是表中没有任何字段是聚集的索引,所以你还必须为这个索引加上聚集的,sqlserver怕我们忘记加“聚集”索引,所以当我们在设置主键时,它帮助我们自动为主键加上聚集索引,这是那个原因。
对于存在聚集索引的表,在查询计划中可以观察到它是走聚集索引的
反之,我们把主键的聚集索引改为非聚集索引,结果就不同了
当表中没有聚集索引时,查询将会是全表扫描
我们还真应该记得:为了优化查询,我们的表中需要设置聚集索引,当然它可以不是主键。
最新文章
- wireshark抓包工具简介以及tcp三次握手的一些含义
- Please allow Subclipse team to receive anonymous usage statistics for this Eclipse intance(info)
- IBatis 批量插入数据
- 删除Windows 服务
- codeforces 442C C. Artem and Array(贪心)
- POJ 2970 The lazy programmer(优先队列+贪心)
- kettle菜鸟学习笔记2----第一个kettle转换的建立及执行
- [原创作品] RequireJs入门进阶教程
- Java标准注释配置
- ORACLE复杂查询之连接查询
- nginx系列11:负载均衡哈希算法ip_hash与hash模块
- String字面量
- hadoop2.6.4集群笔记
- linux上的工具或软件
- iOS &;Android 项目 Jenkins持续集成
- 对比数据库字段不同的sql (mysql版)
- Spring Boot 使用IntelliJ IDEA创建一个web开发实例(五)
- spring mvc框架web.xml配置
- 第一章IP:网际协议
- 局部敏感哈希LSH
热门文章
- 转载.NET 4.0中的泛型的协变和逆变
- PHP魔术变量总结
- AT指令
- 按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。 (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性, 和计算体积的方法。 (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、 宽、高,输出其底面积和体积。
- Mac窗口管理管理软件SizeUp
- MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变
- ThinkPHP CURD方法盘点:table方法
- 将图片序列保存为GIF文件
- sphinx配置文件继承
- 【转】int const A::func()和int A::func() const