索引的可选择性

简介:
索引的“可选择性”是指在该索引列里存储不同值的数目和记录数的比。比如某个表的记录数是
1000条,而该表的索引列的值只有900个不同的值(有100个是相同或是空)。这样索引的可选
择性为900/1000为0.9 。这样当然效果就不好,最好的索引可选择性(如主键索引)是1.0 。索
引的可选择性是衡量索引的利用率的方法,比如在极端的情况下,一个表记录数是1000,而
索引列的值只有5个不同的值,则索引的可选择性很差(只有0.005)。这样的情形使用全表扫
描要比采用索引还好。
测量索引的可选择性
方法1:
可以采用命令方式来测量某个索引的可选择性值,例如COMPAY表的city 列和state列是被建立
成索引,则:
COMPAY 表的city和state 列的不同值的数目为:
Select count( distinct ||%||state) from COMPAY;
用下面语句查出COMPAY表的记录数:
select count(*) from COMPAY;
按照前面的方法进行比可得到该索引的可选择性值。
方法2:
用analyze 对表进行统计,对表进行分析后,系统同样对索引进行了分析。在查询结果。
ANALYZE TABLE compay compute statistics;
一旦表及其索引被分析过,就可以查询USER_INDEXES数据字典中的数据:
查询不同索引的列值:
select distinct_keys from user_indexes where table_name=’COMPAY’;
查询表中的记录数:
select num_rows from user_tables where table_name =’COMPAY’;
索引可选择性= distinct_keys / num_rows
目录
相关文章
|
索引
索引
索引。
89 0
|
3月前
|
存储 关系型数据库 数据库
什么是索引
【10月更文挑战第15天】什么是索引
|
5月前
|
TensorFlow 算法框架/工具 索引
索引
【8月更文挑战第13天】索引。
32 1
|
8月前
|
SQL 搜索推荐 关系型数据库
|
8月前
|
SQL 关系型数据库 MySQL
关于索引的使用
关于索引的使用
|
存储 关系型数据库 MySQL
了解和认识索引
了解和认识索引 。
66 0
|
8月前
|
安全 关系型数据库 MySQL
合理使用索引
【5月更文挑战第9天】这篇文章探讨了数据库索引的高效使用,包括函数和表达式索引、查找和删除未使用的索引、安全删除索引、多列索引策略、部分索引以及针对通配符搜索、排序、散列和降序索引的特殊技巧。还介绍了部分索引在减少索引大小和处理唯一性约束中的应用,以及PostgreSQL对前导通配符搜索的支持。通过遵循简单的多列索引规则和利用特定类型的索引,如哈希和降序索引,可以显著提高查询性能。
112 0
|
8月前
|
存储 算法 关系型数据库
索引总结(2)
索引总结(2)
53 0
|
关系型数据库 MySQL 索引
索引(2)
索引(2)。
47 0
|
关系型数据库 MySQL 数据库
了解和认识索引
了解和认识索引。
56 0

热门文章

最新文章