博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
陷阱~SQL全表扫描与聚集索引扫描
阅读量:6810 次
发布时间:2019-06-26

本文共 477 字,大约阅读时间需要 1 分钟。

SqlServer中在查询时,我们为了优化性能,通常会为where条件的字段建立索引,如果条件比较固定还会建立组合索引,接下来,我们来看一下索引与查询的相关知识及相关陷阱。

SQL表自动为主键加聚集索引的猜想

我认为应该是对查询的优化,因为如果聚集(最多只能有一个)索引的话,在SQL查询时,将进行全表扫描,反之,进行聚集索引(B树结构)扫描,这将大大加快检索的速度;有时,我们感觉对主键(自增的)加聚集索引没什么用,所以就把它改为非聚集索引,但当我们为表的其它字段索引后,发展查询时没有按着索引检索,而是全表扫描,这是为何?原因是表中没有任何字段是聚集的索引,所以你还必须为这个索引加上聚集的,sqlserver怕我们忘记加“聚集”索引,所以当我们在设置主键时,它帮助我们自动为主键加上聚集索引,这是那个原因。

对于存在聚集索引的表,在查询计划中可以观察到它是走聚集索引的

反之,我们把主键的聚集索引改为非聚集索引,结果就不同了

当表中没有聚集索引时,查询将会是全表扫描

我们还真应该记得:为了优化查询,我们的表中需要设置聚集索引,当然它可以不是主键。

转载地址:http://xpwzl.baihongyu.com/

你可能感兴趣的文章
MySQL 是如何解决幻读的
查看>>
Some methods of deep learning and dimensionality reduction
查看>>
天马行空脚踏实地,阿里巴巴有群百里挑一的天才应届生 ...
查看>>
「镁客早报」高通称若没有苹果订单无需每年升级芯片;小米进行第二次回购 ...
查看>>
生产实践Kafka与ELK
查看>>
Eclipse的PropertiesEditor切换大小写
查看>>
Android多线程源码详解一:handler、looper、message、messageQueue
查看>>
SaaS加速器II 能力中心:互利互补 共享商业红利
查看>>
病毒木马防御与分析实战
查看>>
分布式工作流任务调度系统Easy Scheduler正式开源
查看>>
Flutter实战(一)写一个天气查询的APP
查看>>
Golang 入门系列(十) mysql数据库的使用
查看>>
Python零基础学习笔记(十二)—— 字符串及其常用方法
查看>>
数据脱敏平台-大数据时代的隐私保护利器
查看>>
区块链教程Fabric1.0源代码分析ledgerID数据库-兄弟连区块链教程
查看>>
轻松上云系列之二:其他云数据迁移至阿里云
查看>>
sql server 高可用性技术总结
查看>>
Robot Framework之分层测试流程
查看>>
学习ASP.NET Core Razor 编程系列七——修改列表页面
查看>>
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 23 章 本地化_23.3. 字符集支持
查看>>