zoukankan      html  css  js  c++  java
  • 索引的选择性

    索引的选择性是指索引列中不同值的数目与表中记录数的比。如果一个表中有2000条记录,表索引列有1980
    个不同的值,那么这个索引的选择性就是1980/2000=0.99。
    一个索引的选择性越接近于1,这个索引的效率就越高。
    如果是使用基于cost的最优化,优化器不应该使用选择性不好的索引。如果是使用基于rule的最优化,优化
    器在确定执行路径时不会考虑索引的选择性(除非是唯一性索引),并且不得不手工优化查询以避免使用非
    选择性的索引。
    例如:
    SELECT
    COUNT(DISTINCT order_id)/COUNT(*) AS id,
    COUNT(DISTINCT pay_name)/COUNT(*) AS pay,
    COUNT(*)
    FROM order_info t;

    结果:

    +--------+--------+----------+
    | id         | pay       | COUNT(*) |
    +--------+--------+----------+
    | 1.0000 | 0.0000 | 407658 |
    +--------+--------+----------+
    1 row in set

    得出order_id的索引选择性比pay_name高。

  • 相关阅读:
    Linux and the Unix Philosophy(6)
    在docker环境下部署kafka集群
    Docker学习笔记1-docker介绍及安装
    nginx安装
    centos7下NFS配置
    搭建kafka集群
    nexus开机启动
    java跨库事务Atomikos
    mongodb数据库还原
    Linux下运行jar
  • 原文地址:https://www.cnblogs.com/kenwong/p/4744153.html
Copyright © 2011-2022 走看看