DB2索引创建原则
创始人
2024-07-17 01:50:22
0

DB2索引创建都应该哪些原则呢?这是很多人都提到的问题,下面就为您详细介绍DB2索引创建原则,供您参考学习。

DB2索引实现是一个B+树,通过索引可以实现快速查询,避免全表扫描以此来减少IO操作。

索引是对表数据的一种抽象,通过抽取有限数据,对数据的分布进行计算,以此来完成对数据的快速检索。

索引创建语句

  1. CREATE INDEX  ON  (

创建索引需要注意的地方:

索引应该用来提高查询速度,但是会对更新和删除操作带来负面影响,因为要同步更新索引。所以索引应该创建到更新、删除相对比读取少的表上。

索引需要独立的空间进行存储和管理。索引是需要磁盘空间来存储。所以避免重复创建冗余索引。如下:

  1. “CREATE TABLE TEST_IDX (COL1 INT NOT NULL, COL2 INT NOT NULL, COL3 IN NOT NULL)”“CREATE INDEX TEST_IDX_IDX1 ON TEST_IDX (COL1, COL2, COL3)” 

已经有索引TEST_IDX_IDX1在三个列上,在创建”CREATE INDEX TEST_IDX_IDX2 ON TEST_IDX (COL1, COL2)”,这样的索引一般没有什么作用。

索引用来避免表扫描。通过索引对大量数据抽取有限部分,形成一个相对少量的有序数据结构,通过对有序数据结构的查找可以快速想要查找的数据。所以索引适合建立在数据量比较大的表上,而且该表上的查询经常是根据条件查询部分数据。比如一些系统基础表,如SYSTEM表,这些表数据量小,而且经常是查询全部数据,所以这些表上建立索引对性能的影响不是很大,完全可以避免,以免对管理造成影响。

创建索引的目的还有一个就是保证数据唯一性,可以利用”CREATE UNIQUE INDEX ON ()”,来完成。

主键会隐式创建索引,所以请不要在主键上创建索引浪费空间。

尽量减少索引的创建。DB2路径访问优化器会根据表中所提供的索引来完成尽可能多的访问路径的成本估计。创建过多的索引意味着DB2优化器生成更多的访问路径,完成更多的访问计划成本估算,这会增加SQL语句编译时间。

创建唯一索引可以避免排序。因为索引是有序数据结构,在进行扫描时,DB2会默认按照顺序输出结果,而不是按照插入先后。通过创建唯一索引可以避免排序,提高查询性能。

具有大量重复数据的列上不要创建索引。在大量重复的列上创建索引没有任何意义。如下数据结构:表中字段col1有大量重复数据,其中的数据分布是按照90%的Y,和10%的N来分布。这样的列上创建索引没有任何意义。在查询条件为col1=‘Y’时,该表的索引扫描和表扫描没有特大差异。根据实践经验,列上的数据分布应该均匀,并且抽密度不能大于5 ‰。

创建如下表:

  1. “CREATE TABLE TEST1 (NO INT NOT NULL, NAME CHAR(5))”  
  2.  
  3. “CREATE INDEX TEST1_IDX_1 ON TEST1 (NO)”  
  4.  
  5. “INSERT INTO TEST1 SELECT ROW_NUMBER() OVER(), CHR(INT(RAND()*75+48))||CHR(INT(RAND()*75+48))||CHR(INT(RAND()*75+48)) FROM SYSCAT.COLUMNS T1 JOIN SYSCAT.COLUMNS T2 ON T1.COLNAME!=T2.COLNAME FETCH FIRST 100 ROWS ONLY“  
  6.  
  7. “SELECT * FROM TEST1 WHERE NO = 50”  

以上就是DB2索引创建原则介绍。

 

 

【编辑推荐】

DB2循环查询的实现方法

DB2分区数据库的前滚操作

DB2分区数据库备份的实现方法

DB2目录结构详解

DB2批量执行SQL脚本的实现

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...