索引(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

浙公网安备 33010602011771号