首页 > 数据库 >【数据库原理、编程与性能】Indexing

【数据库原理、编程与性能】Indexing

时间:2023-06-20 11:38:22浏览次数:126  
标签:Index 聚簇 index DB 数据库 编程 Indexing 索引 Create



文章目录

  • 1. Concept of Indexing
  • 1.1 Index
  • 1.2 Create Index
  • 1.3 DB-Index 分类
  • 1.4 建立索引的原则:
  • 1.5 DB-Index 作用
  • 2. 聚簇(Cluster/Cluster Index )存取方法
  • 2.1 概念
  • 2.2 特点
  • 2.3 弊端


1. Concept of Indexing

1.1 Index

  • 索引项=索引键+行指针
  • 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。索引的一个主要目的就是加快检索表中数据,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。
  • Index Entries(索引项)存储在B-tree/hash table中。

1.2 Create Index

CREATE [UNIQUE] INDEX indexname ON tablename (colname [ASC | DESC] {,colname [ASC | DESC] . . .}) ;

eg 1 : Create an index “citiesx” on “city” of the customers table.

Create index citiesx on customers(city);

eg 2 : Delete the index “citiesx” , can use the standard form:

Drop index citiesx;

eg 3 : Want to declare the “cid” to be UNIQUE INDEX.

Create unique index cidx on customers (cid);

1.3 DB-Index 分类

  • 索引
  • 组合索引
  • 唯一索引
  • 聚簇

1.4 建立索引的原则:

  • 经常在查询条件中使用的属性
  • 经常作为MAX、MIN等集函数处理参数的属性
  • 经常用于连接操作的属性

1.5 DB-Index 作用

  • 可提高数据Select速度;但维护要付出代价;
  • 频繁进行数据Updates的表,其索引选择要注意。

Eg. 学籍表在新生入校期间,录入数据量大,可删除索引;待数据趋于稳定后,重建索引,加快查询速度。

2. 聚簇(Cluster/Cluster Index )存取方法

  • CREATE CLUSTER [schema.]clustername (colname datatype {, . . .} [cluster_clause {. . .}];
  • DROP CLUSTER [schema.]clustername [INCLUDING TABLES [CASCADE CONSTRAINTS]];

2.1 概念

把某些属性组上,具有相同值的元组集中存放在连续的物理块中,称为聚簇。这些属性组叫聚簇码/聚簇索引。

2.2 特点

聚簇比其他种类的索引查询效率高;一个DB可建多个聚簇,但一个关系(表)只能加入一个聚簇。

2.3 弊端

聚簇可极大提高某些查询性能,但建立与维护聚簇的开销也相当大,因此应综合权衡。DB-Index 分类:索引、组合索引、唯一索引、聚簇


标签:Index,聚簇,index,DB,数据库,编程,Indexing,索引,Create
From: https://blog.51cto.com/u_16165815/6521617

相关文章

  • 【数据库原理、编程与性能】Updata Transaction
    文章目录1.TransactionHistories1.1并发(Concurrency)1.2并发操作会出现的DB问题1.3并发控制技术1.4封锁1.4.1锁类型1.4.2事务锁之间的相容矩阵1.5LockingProtocol1.5.1一级封锁协议1.5.2二级封锁协议1.5.3三级封锁协议2.NotationsTransactionHistories2.1Notation......
  • 【数据库原理、编程与性能】Basic SQL Query Language
    文章目录1.HistoryofSQL2.CapabilitiesofSQL2.1综合统一2.2高度非过程化2.3面向集合的操作方式2.4SQL以同一种语法结构提供两种使用方式2.5语言简捷,易学易用3.SQL语句3.1Create语句3.2Select语句3.3Subquery语句3.3.1定义3.3.2Conception(概念)3.3.3predicate(谓词......
  • 【数据库原理、编程与性能】Programming to access a Database
    文章目录1.IntroductiontoEmbeddedSQLinC1.1Declaresection1.2Connect/Disconnect1.2.1Connect1.2.2Disconnect1.3Commit/Rollback1.4Whenever1.5一个实例:1.6HostVariable1.6.1Definition1.6.2说明1.6.3用法1.6.4实例1.6.5IndicatorVar2.CommonEmbedded......
  • 污水净化处理厂PLC自动化程序设计编程调试一套市政污水处理厂PLC自动化程序设计编程调
    污水净化处理厂PLC自动化程序设计编程调试一套市政污水处理厂PLC自动化程序设计编程调试一套含技术要求合同,上位机画面_组态王,plc程序_西门子300,触摸屏_ktp1000,电气设计图纸一套,plc点表等,此项目现场调试两个月,现正常运行中,非常适合自动化刚入行的新手学习,也适合对污水处理需要的......
  • Python开发系列课程(18) - 网络编程入门
    网络编程入门计算机网络基础计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享。今天计算机网络中的设备和计算机网络的用户已经多得不可计数,而计算机网络也可以称得上是一个“复杂巨系统”,对于这样的系统,我们不可......
  • Python开发系列课程(9) - 面向对象编程基础
    面向对象编程基础活在当下的程序员应该都听过“面向对象编程”一词,也经常有人问能不能用一句话解释下什么是“面向对象编程”,我们先来看看比较正式的说法。把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继......
  • python编程规范之函数变量定义规范
    我们经常能看到一些人写代码是这样的:defmy_function():print(my_variable)my_variable=10my_function()在这种情况下,代码将正常运行并输出变量的值为10。当你在函数内部引用一个变量时,Python首先会查找函数内部是否定义了该变量。如果没有找到,它会继续查找函数外......
  • 宝塔面板中使用Mysql命令快速导入大容量数据库
    在宝塔面板中,文件栏目中打开/www/backup/database文件夹,把我们的数据库上传到此文件夹中。(一般导入的数据库都会上传到这个文件夹,方便以后管理)点击旁边的终端,打开宝塔终端界面。输入账号及密码进入终端管理。(如果忘记密码,在软件商店里面找到Linux工具箱1.4里面可以设置......
  • 【雕爷学编程】Arduino动手做(117)---P10V706LED屏模组
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 利用 AWS CodeWhisperer 激发孩子的编程兴趣
    我是一个程序员,也是一个父亲。工作之余我会经常和儿子聊他们小学信息技术课学习的Scratch和Kitten这两款图形化的少儿编程工具。我儿子有一次指着书房里显示器上显示的VisualStudioCode问我,“为什么我们上课用的开发界面,和爸爸你每天工作用的样子不一样?”所以我也在想......