Clustered Index & Non Clustered Index

实战:看懂并分析执行计划——Clustered Index Scan 通过查看执行计划中的操作,我们可以确认查询的瓶颈在于全表扫描导致了大量 I/O 和 CPU 开销。针对Predicate中使用的条件列创建合适的非聚集索引,以及减少中不必要的字段,可以有效优化查询性能,减少 I/O 和 CPU 消耗。创建索引后,重新查看执行计划,以确认是否成功将转换为Index Seek,达到优化目标。 阅读详情

聚簇索引和非聚簇索引都是为了增加数据检索速度而存在的.

在配置上, 每个表只能有一个聚簇索引,而能有200多个非聚簇索引。

在物理分配上, 每个表的数据都是分配在页上,一个页大概有8k左右,假设一条数据占1000字节的话,那么8000条数据占8000*1k/8k = 1000页面,这些数据存在于数据块中。

如果对这些数据中的某一10字节的字段做聚簇索引的话,8000 * 0.01K /8 = 10 页面,那么10页面作为存储这些索引而存在。并存放于索引块  

如果对这些数据中的某一10字节的字段做非聚簇索引的话,2 * 8000 * 0.01K /8 = 20 页面,那么20页面作为存储这些索引而存在。并存放于索引块。乘2 的原因请看以下叙述。

在功能上,      聚簇索引后,数据按照索引的顺序来排序,所以索引所指向的就是数据层里对应的相关数据。

                非聚簇索引后,数据不会按照索引的顺序来排序,所以数据库会先按字理或逻辑先生成首层索引, 再根据首层索引生成第二层索引,第二层索引

所指向的才是数据层里对应的相关数据。

在性能上,      聚簇索引在大多数的情况下对该索引的查询操作性能是最好的,查询先通过索引层(按上述的例子中,最多需要搜索10页)找到对应数据存在位置,就算是多条符合记录的数据,也是在旁边的数据位置中就能找到

                非聚簇索引在大多数的情况下对该索引的查询操作性能比聚簇索引稍次,查询也先通过首层索引(按上述的例子中,最多搜索10页)找到对应第二层索引存在位置,由第二层索引层再找到数据的物理位置。

 

                索引虽然可以增加查询速度,但也有以下缺陷,需要在设置时注意

1.     占用空间,虽然索引块增长速度不如数据块那么急剧,但毕竟也是消耗空间的。

2.     在select * 的访问语句时, 数据库会先搜索聚簇和非聚簇索引的索引块的索引,再搜索数据块,这种情况下表里完全不设索引的性能高于设了聚簇索引的性能(按上例要额外搜索10个页),设了聚簇的性能比设非聚簇的要好(按上例非聚簇要额外搜索20个页)

Node-RED系列(二二):使用dashboard搭配echarts制作漂亮的面板 在node-red中dashboard 是一个很常用的模块,其中它有一个chart节点可以用来制作一些图表,比如柱状图,折线图,饼图,但其中的图表并不是很美观,而且可配置项非常的少。 于是就有很多小伙伴找我做一套比较好看的图表面板,在对比了一下几个图表库,我选中了echarts。 不仅美观大方,而且非常容易集成,配置。下面先来看一下我做的效果。这里是直接做了四个折线图,第一个折线图有动态效果,第二个折线图是一个多线条的折线图,第三个折线图是在一个图例显示两个折线图。第二第三都可以用于数据对比。 第四个折线 阅读详情

相关推荐

SAP ABAP开发避坑:BAPI_MATVAL_PRICE_CHANGE调用报‘估价未维护’的完整解决流程

本文深入解析SAP ABAP开发中调用BAPI_MATVAL_PRICE_CHANGE函数时遇到的'估价未维护'错误,提供从基础配置检查到CKML_PRICE_SEND表维护的完整解决方案。通过实战案例和代码示例,帮助开发者快速定位问题并实现批量价格更新的自动化处理,提升开发效率。

weixin_28705087的博客 428

什么是聚集索引和非聚集索引?

聚集索引是将数据表中的行按照索引键的顺序进行物理排序的索引。一个表只能有一个聚集索引,因为数据表的物理存储顺序只能有一种。聚集索引的索引键决定了数据在表中的存储顺序。非聚集索引是将索引键和指向数据行的指针存储在索引页中的索引。一个表可以有多个非聚集索引,因为非聚集索引不影响数据表的物理存储顺序。非聚集索引的索引键决定了索引页的排序顺序。

网络技术联盟站 6450

数学分析五领域全景:实分析、复分析、泛函分析、傅里叶分析、凸分析

五种分析,五种视角,同一个目标。理解一个系统,首先要找到它的不变量。

li880862的博客 196

聚集索引(聚簇索引)的使用

聚集索引 聚集索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。

以梦为马,不负韶华。 4625

Python数据分析实战:用TIGRAMITE库5步搞定时间序列因果分析(附完整代码)

本文详细介绍了如何使用TIGRAMITE库进行时间序列因果分析,通过5个步骤从环境配置到模型优化,帮助读者掌握因果关系库的应用。附完整代码示例,适合数据分析师和研究人员快速实现复杂时间序列的因果发现。

weixin_29050271的博客 161

避开SiC MOSFET驱动设计的3个大坑:电流/电阻/电压配置全指南

本文深入解析SiC MOSFET驱动设计中的三大关键参数:驱动电流、栅极电阻和工作电压,揭示常见设计误区与优化方案。通过实际案例与数据对比,指导工程师避开第三代电力电子半导体应用中的典型陷阱,提升系统可靠性与效率。特别针对驱动电源配置、栅极电阻选型等核心问题提供可落地的解决方案。

weixin_29214199的博客 385

聚簇索引 和 非聚簇索引详解

聚簇索引、非聚簇索引、InnoDB

weixin_44991038的博客 1万+

蓝桥杯单片机省一经验分享1:基础篇.含详细代码与应试技巧

含详细代码、驱动修改与应试技巧

qq_53529450的博客 1万+

聚簇索引和非聚簇索引

需要注意的是,隐式聚簇索引可能并不是最优的选择,因为它可能会选择一个不太适合作为聚簇索引的列。这样的话,你还要根据那个主键去回表,再去查,去查那个主键索引,再去查一遍,这就是它的一个回表的情况。那么这个innodb,他除了这个聚簇索引,像什么复合索引,前缀索引,还有这唯一索引,他们都是在这个聚簇索引的基础之上建立的索引。表数据按照索引的顺序来存储的,也就是说索引项的顺序与表中记录的物理顺序一致。聚簇索引逻辑上的连续性:聚簇索引的存储并不是物理上的连续,而是逻辑上的连续。的形式,分为聚簇索引和非聚簇索引。

qq_46130027的博客 4282

电化学阻抗谱(EIS)在锂离子电池中的应用

摘要电化学阻抗谱(electrochemical impedance spectroscopy, EIS)是一种重要的电化学测试方法,在锂离子电池动力学反应机理研究及动力学参数测量等方面具有广泛的应用。在锂离子电池运行过程中,各反应步骤的动力学参数及时间常数不同,而EIS可以在较宽的频率范围内对体系施加小幅正弦激励信号,使得在特定频率下突出特定时间常数的电极过程,从而将复杂的电极过程分离,实现单一电极过程动力学的分析。通过对交流阻抗信息的研究,也可以为锂离子电池及其他电池的应用与管理、电化学过程设计及电极材

qiushireader的博客 2657

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Create & Test for NONCLUSTERED INDEX and CLUSTERED INDEX

1. Create and delete clustered index Drop Index PerformanceIssue.UNC_PRID CREATE UNIQUE NONCLUSTERED INDEX UNC_PRID ON PerformanceIssue (PRID) CREATE UNIQUE CLUSTERED INDEX UC_PRCode ON Performan...

weixin_34233679的博客 149

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Clustered Index & Non Clustered Index(转帖)

聚簇索引和非聚簇索引都是为了增加数据检索速度而存在的.<br />在配置上,每个表只能有一个聚簇索引,而能有200多个非聚簇索引。<br />在物理分配上,每个表的数据都是分配在页上,一个页大概有8k左右,假设一条数据占1000字节的话,那么8000条数据占8000*1k/8k = 1000页面,这些数据存在于数据块中。<br />如果对这些数据中的某一10字节的字段做聚簇索引的话,8000 * 0.01K /8 = 10 页面,那么10页面作为存储这些索引而存在。并存放于索引块   <br />如果对这些

115

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Clustered Index & Non Clustered Index(聚簇索引和非聚簇索引)

每个表只能有一个聚簇索引,而能有200多个非聚簇索引。 在物理分配上,每个表的数据都是分配在页上,一个页大概有8k左右,假设一条数据占1000字节的话,那么8000条数据占8000*1k/8k = 1000页面,这些数据存在于数据块中。 如果对这些数据中的某一10字节的字段做聚簇索引的话,8000 * 0.01k /8k = 10页面,那么10页面作为存储这些索引而存在。并存放于索引块...

weixin_30569033的博客 127

聚簇索引(Clustered Index)和非聚簇索引 (Non- Clustered Index)(转)

聚簇索引(Clustered Index)和非聚簇索引 (Non- Clustered Index)

weixin_43447957的博客 227

SQL Server中CLUSTERED INDEX的特殊用处

SQL Server中CLUSTERED INDEX的特殊用处背景CLUSTERED INDEX的定义简单实验总结 背景 在查看SQL Server数据库项目的存储过程中,看到了如下2行紧邻的代码 create CLUSTERED index #detail_idx_order on #detail(ordersno, name, count, orderdate) drop index #detail_idx_order on #detail (此处 #detail 表名前加 # 表示本地临时表,与用户

sen_x 1697

SQL Server should create clustered index before non-clustered index in exists table

env:Windows Server 2016        SQL Server 2016 SP2   有一張表格要補上clustered index與non-clustered index。這是一張既有表格且有4億筆資料,裡面也有一支non-clustered index。 統計資訊的更新程度是80000000筆。   1.執行create non-clustered index後...

仙仙熊SQL筆記 350

clustered index和secondary indexes

Every InnoDB table has a special index called the clustered index where the data for the rows is stored. If you define a PRIMARY KEY on your table, the index of the primary key is the clustered index.

zhaoyangjian724的专栏 2146

Clustered Index Scan and Clustered Index Seek

Clustered Index Scan and Clustered Index Seek for Clustered Index : Index Seek means that SQL Server will ...

cuixie2370的博客 282

MySQL InnoDb中的 Clustered Index 和 Secondary Index

MySQL InnoDb中的 Clustered Index 和 Secondary Index MySQL InnoDb中的索引分为Clustered Index (聚簇索引)和 Secondary Index(二级索引) Clustered Index: 每一个InnoDB表都有一个特殊的索引,叫做clustered index,通常来讲,clustered index和prim

匿_名_用_户的专栏 7881

clustered index

索引是个单独的数据结构,比如 B-tree clustered index http://www.mysqltutorial.org/mysql-index/mysql-clustered-index/ A clustered index, on the other hand, is actually the table. It is an index that enforces...

jupiter_888的博客 172

SQL Server Primary Key和Clustered Index

在创建Table设定主键的时候,SQL Server会自动创建一个对应的Clustered Index。如果使用Microsoft SQL Server Management Studio工具,发现这个Clustered Index只能删除,不能通过界面进行修改。这让人误以为在主键上只能建立Clustered Index, 实际上却不是这样的。    如果通过Script 创建,我们可以指定在主

Cassaba的专栏 9469

重新认识clustered index

cluster index cluster index就是table本身 table中所有的rows按照排序存在磁盘上 clustered index 用指定的字段对所有行落盘排序 When you define a primary key for an InnoDB table, MySQL uses the primary key as the clustered index...

jupiter_888的博客 533

[EF] - Code First处理Clustered Index

Clustered Index &lt;=&gt;集群索引: http://msdn.microsoft.com/en-us/library/ms177443.aspx 由于其特殊性,使得每个table只可以有一个clustered index,如果尝试建立第二个,会报错。 在EntityFramework里,不知道即将到来的7如何处理这个索引,但是到目前为止最新的EF版本,对这个...

weixin_30318645的博客 95
上一篇: 80年代的感想
下一篇: outer和left outer join有什么区别??
布丁oo
博客等级 码龄19年 18粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值