zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

索引的可选择性

2023-09-14 08:59:49 时间
索引的“可选择性”是指在该索引列里存储不同值的数目和记录数的比。比如某个表的记录数是 1000条,而该表的索引列的值只有900个不同的值(有100个是相同或是空)。这样索引的可选 择性为900/1000为0.9 。这样当然效果就不好,最好的索引可选择性(如主键索引)是1.0 。索 引的可选择性是衡量索引的利用率的方法,比如在极端的情况下,一个表记录数是1000,而 索引列的值只有5个不同的值,则索引的可选择性很差(只有0.005)。这样的情形使用全表扫 描要比采用索引还好。 测量索引的可选择性 可以采用命令方式来测量某个索引的可选择性值,例如COMPAY表的city 列和state列是被建立 成索引,则: COMPAY 表的city和state 列的不同值的数目为: Select count( distinct ||%||state) from COMPAY; 用下面语句查出COMPAY表的记录数: select count(*) from COMPAY; 按照前面的方法进行比可得到该索引的可选择性值。 用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
mysql索引(六)主键索引 主键索引(PRIMARY):它是一种特殊的唯一索引,不允许有空值。 主键索引,简称主键,原文是PRIMARY KEY,由一个或多个列组成,用于唯一性标识数据表中的某一条记录。一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL。
比较列存储索引与行索引 原文:比较列存储索引与行索引     之前已经写过一篇关于列存储索引的简介http://www.cnblogs.com/wenBlog/p/4970493.html,很粗糙但是基本阐明了列存储索引的好处。
eric0435 系统架构师(高级工程师),ACOUG amp;CSOUG核心成员,Oracle Young Expert 。政府信息化技术顾问。湖南省政府采购评审专家,从2007年开始从事社会保险系统开发,应用架构设计,数据库管理工作。擅长Oracle数据库故障诊断,性能调优。