索引(INDEX)

蓝色底色的字为个人喜欢的名字,根据喜好进行修改

索引(INDEX)

索引是一种数据库结构,用于加速表中数据的检索。它类似于书籍的目录,能够快速定位所需数据


索引的优点:

  减少磁盘的输入输出:索引通过指针加速 Oracle 服务器的查询速度,被删除或损坏, 不会对表产生影响

索引的缺点:

  在维护数据的同时也需要维护索引:在进行 DML 操作时,需要同时维护索引

  需要占用额外的物理空间


关于索引的注意项:

  1、索引并不是越多越好,一般不超过表结构的30%

  2、小表(100W行数据已下)不需要创建索引

  3、经常更新的表和字段不建议创建索引,需要额外维护麻烦

  4、大表插入数据,通常先把索引删除,再插入数据,插入后重新创建索引

  5、 经常用于 WHERE 筛选或者关联的字段建议增加索引

  6、字符串很长的字段不适合创建索引 如 VARCHAR(1000) 因为索引会太占空间


索引的分类:

  按照是否唯一:唯一索引(也称聚簇索引) 、非唯一索引(也称非聚簇索引)

  按照分区全局:分区索引、全局索引

  常规分为:B-Tree索引、位图索引、函数索引


创建索引:

  注意1:创建主键或唯一键约束的时候,会自动创建主索引和唯一索引

  注意2:如果是联合索引,比如基于a和b字段创建索引,a比b的重复率低,(a,b)优于(b,a)

唯一索引:CREATE UNIQUE INDEX index_username_test_id ON username.test(id)

全局索引:CREATE INDEX index_username_test_id ON username.test(id) GLOBAL

分区索引:CREATE INDEX index_username_test_id ON username.test(id) LOCAL (PARTITION p1)

B-TREE索引(Oracle的默认索引类型,适用于重复率比较低):CREATE INDEX index_username_test_id ON username.test(id)

位图索引(适用于重复率较高):CREATE BITMAP INDEX index_username_test_class ON username.test(class)

函数索引(没用这个函数则查询不会走索引):CREATE INDEX index_username_test_lengthname ON username.test(length(name))


删除索引:

DROP INDEX indexname

 

 

posted @ 2025-06-10 16:50  wwwwxxxx  阅读(22)  评论(0)    收藏  举报