原理

最好看一下 这些章节帮助理解

Sqlserver 高级篇 理解存储原理 (数据库页概念)

Sqlserver 高级篇 数据存储(堆概念,索引)

非聚集索引  非聚集索引是数据库按照 用户所设置的索引列 创建了多个排序好的索引页  每次查找 都遍历索引页 毕竟 遍历索引页 比直接遍历所有数据要快

非聚集索引可以有多个

唯一索引 (我们设置好的唯一约束)也是非聚集索引 只不过多了一个唯一属性

看一个图 来解释 非聚集索引 查询数据原理

数据库查询用的是B树算法  就像大树一样 从树干 到树枝到各种树叶 成扩散状

这一部分 我理解就是非聚集索引 所创建的 页

我们通过SQL 创建一个非聚集索引 比如 名字  数据库就会创建很多按照名字排序的页

我们详细看一下 页里面的内容

前面是非聚集索引键 (名字)后面 4:706:01 的意思是在ID为4数据库文件里 的706页里的01行数据

从数据查询语句开始 我们看一下 查询过程

如果 sql是 select * from ST where Name = 'Marthin'  and 执行

首先 数据库会去查询 SYSindexes 看indid里的字段是什么 1是聚集索引 0 是无索引 别的就是非聚集索引比如(2,3,4,5,6....)

一看是2

就知道是非聚集索引

去查第一个索引页 找到Marthin 看存储在 Page 28 然后看 Marthin 存在page61页

再去遍历page61页 找到所在页信息

在去page706 找到信息 显示出来

这就是 非聚集索引 查询的一个过程

非聚集索引创建

1)语句创建

Create nonclustered index... on...

non_Name (索引名)

TStudent(Sname)(表(列))

Create nonclustered index non_Name on TStudent(Sname)

2)Slqserver 工具创建

右击列 选择 索引/键

表的 索引就会有一个Name的非聚集索引

Sqlserver 高级篇 非聚集索引原理相关推荐

  1. SQLServer之创建非聚集索引

    开始之前 典型实现 可以通过下列方法实现非聚集索引: UNIQUE 约束 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 UNIQUE 约束. 如果不存在该表的聚集索引,则可以 ...

  2. SQLServer之创建非聚集索引 1

    开始之前 典型实现 可以通过下列方法实现非聚集索引: UNIQUE 约束 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 UNIQUE 约束. 如果不存在该表的聚集索引,则可以 ...

  3. Sqlserver 高级篇 聚集索引原理

    原理 Sqlserver 高级篇 非聚集索引原理 说完非聚集索引 接着说 聚集索引 聚集索引就是把数据按照 用户设置排好顺序 与非聚集索引不同 非聚集索引不会动数据页 只会新增一个索引表  聚集索引直 ...

  4. 一篇读懂聚集索引、非聚集索引、覆盖索引的工作原理!

    作者:PostTruth 「数据库」和「数据库索引」这两个东西是在服务器端开发领域应用最为广泛的两个概念,熟练使用数据库和数据库索引是开发人员在行业内生存的必备技能. 使用索引很简单,只要能写创建表的 ...

  5. SQLSERVER聚集索引与非聚集索引的再次研究(下)

    上篇主要说了聚集索引和简单介绍了一下非聚集索引,相信大家一定对聚集索引和非聚集索引开始有一点了解了. 这篇文章只是作为参考,里面的观点不一定正确 上篇的地址:SQLSERVER聚集索引与非聚集索引的再 ...

  6. SqlServer聚集索引原理

    测试所用数据库:SQLSERVER2012 我们都知道索引能提高查询速度,那么索引到底是怎么提高查询速度的呢?这要从索引的数据结构说起 索引分为聚集索引和非聚集索引,这两种索引的数据结构都是B+树,这 ...

  7. sql server 创建唯一性非聚集索引语句_数据库专题—索引原理

    深入浅出数据库索引原理 参见:https://www.cnblogs.com/aspwebchh/p/6652855.html 1.为什么给表加上主键? 1.平时创建表的时候,都会给表加上主键.如果没 ...

  8. sqlserver聚集索引和非聚集索引并存

    前面两篇文章讲解了一个数据表只存在聚集索引和只存在非聚集索引的情况,接下来我们来讨论一下当聚集索引和非聚集索引同时存在的情况,这种情况也是大多数表都存在的情况. CREATE TABLE Depart ...

  9. mysql索引 聚集索引_Mysql 索引实现原理. 聚集索引, 非聚集索引

    Mysql索引实现: B-tree,B是balance,一般用于数据库的索引.使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度.而B+tree是B-tree的一个变种,My ...

  10. SQLServer之创建唯一非聚集索引

    创建唯一非聚集索引典型实现 唯一索引可通过以下方式实现: PRIMARY KEY 或 UNIQUE 约束 在创建 PRIMARY KEY 约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自 ...

最新文章

  1. Java基于Swing和Netty仿QQ界面聊天小项目
  2. ubuntu_常用命令_01
  3. 【牛客挑战赛31D】 雷的打字机
  4. Thunar 右键菜单等自定义
  5. java formfile_基于Struts文件上传(FormFile)详解
  6. 带aidl文件的应用程序在android平台源码中的编译
  7. JS 数组reduce()方法详解及高级技巧
  8. 基于jsp,javaweb的毕业设计管理系统
  9. python给矩阵赋值_python 实现矩阵旋转
  10. 车牌识别(基于模板匹配算法)
  11. 软件开发工程师证书有用吗_软件设计师证书重要吗?
  12. Pubwin经典问题解答100例
  13. unity自己遇到的一些bug与解决方法的记录
  14. 蓝牙无线自制串口模块连接穿越机配置工具
  15. java clh_【Java并发编程实战】----- AQS(四):CLH同步队列
  16. vue出现client:172 [WDS] Disconnected!
  17. 双显卡笔记本(Intel 集显Nvidia GEFORCE 920M显卡)配置ZED stereo camera
  18. plc服务器作用,工业控制系统以及PLC的简单介绍
  19. Oracle SQL 高版本相关
  20. 基于JPEG压缩编码的数据压缩算法的研究与实现(转)

热门文章

  1. python中 for in 用法_python中for in的用法详解
  2. echart柱状图即显示数值,又显示百分比
  3. Echarts 柱状图上方显示数值
  4. 云服务器5m带宽会有什么样的速度?
  5. JavaSE基础(8)——Java内部类
  6. 微信小程序实现全局登陆状态
  7. 虚拟机无法启动(与设备不兼容)或者启动蓝屏
  8. http server response 一览
  9. VSCode去除.pytest_cache文件夹
  10. 论文发表的等级分为哪些