mysql查看索引的方式

 更新时间:2023年09月05日 09:51:56   作者:牟云飞  
这篇文章主要介绍了mysql查看索引的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mysql查看索引

1、查看数据库所有索引

SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '数据库名';

2、查看某一表索引

SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '数据库名' and a.table_name like '%表名%';

或者

通过命令窗口show index from tb1001_container;

mysql查看索引语句:SHOW INDEX讲解

概述

SHOW INDEX语句是MySQL中用于查看表索引信息的语句。

它提供了有关表中索引的详细信息,包括索引名称、索引类型、关联的列等。

以下是SHOW INDEX的详细说明:

语法

SHOW INDEX FROM table_name [FROM db_name] [WHERE condition];

参数说明 

  • table_name:需要查询索引的表名。
  • db_name:(可选)数据库名。如果你已经在某个数据库上下文中,可以省略此参数。
  • condition:(可选)可以添加WHERE子句来筛选索引信息,比如根据索引名称、索引类型等进行筛选。

SHOW INDEX语句返回以下信息

  • table:表名。
  • non_unique:是否允许重复值。如果值为1,表示允许重复值;如果值为0,表示不允许重复值(唯一索引)。
  • key_name:索引名称。主键索引名通常为PRIMARY。
  • seq_in_index:索引中的列的序号。对于组合索引,这表示列在索引中的位置。
  • column_name:列名,索引涉及的列。
  • collation:排序规则。A表示升序,NULL表示不可排序。
  • cardinality:索引的基数。这是一个估算值,表示索引中唯一值的数量。这个值对于查询优化器选择索引非常重要。
  • sub_part:索引的前缀长度。对于部分索引,这表示索引的前缀长度。
  • packed:索引是否被压缩。如果索引未被压缩,该列的值为NULL。
  • null:列是否允许包含NULL值。
  • index_type:索引类型。常见的类型有BTREE、HASH、FULLTEXT等。
  • comment:索引的备注。

示例

下面是一个名为examples的表,其中包含各种类型的索引:主键索引、唯一索引、普通索引、前缀索引和联合索引。

CREATE TABLE examples (
  id INT AUTO_INCREMENT,
  name VARCHAR(255),
  description TEXT,
  category VARCHAR(255),
  price DECIMAL(10, 2),
  PRIMARY KEY (id),
  UNIQUE KEY idx_name (name),
  KEY idx_category (category),
  KEY idx_category_price (category, price),
  KEY idx_name_prefix (name(10))
) ENGINE=InnoDB;

在这个示例中,我们创建了一个名为examples的表,包含以下类型的索引:

  • 主键索引(PRIMARY KEY):id列是主键索引。主键索引要求唯一且不允许NULL值。
  • 唯一索引(UNIQUE KEY):name列是唯一索引。唯一索引要求唯一,但允许NULL值。
  • 普通索引(KEY):category列是普通索引。普通索引允许重复值和NULL值。
  • 联合索引(KEY):category和price列组成了一个联合索引。这允许根据这两个列的组合进行更快的查询。
  • 前缀索引(KEY):name列的前10个字符被用作前缀索引。前缀索引允许在索引较长的字符串列时节省存储空间和提高查询速度,但可能会影响查询准确性。

现在,使用SHOW INDEX语句查询examples表的索引信息:

SHOW INDEX FROM examples;

输出结果(以表格形式表示):

在SHOW INDEX的输出中,你可以看到examples表的各种类型索引:

  • 主键索引(PRIMARY KEY):在key_name列中,PRIMARY关键字表示该行对应的是主键索引。non_unique列的值为0,说明主键索引的值必须是唯一的。在此例中,主键索引是id列。
  • 唯一索引(UNIQUE KEY):在key_name列中,自定义的索引名称(例如idx_name)表示这是一个唯一索引。non_unique列的值为0,说明唯一索引的值必须是唯一的,但允许NULL值。在此例中,唯一索引是name列。
  • 普通索引(KEY):在key_name列中,自定义的索引名称(例如idx_category)表示这是一个普通索引。non_unique列的值为1,说明普通索引允许重复值和NULL值。在此例中,普通索引是category列。
  • 前缀索引(KEY):前缀索引的识别方法与普通索引相同,但在sub_part列中有一个值,表示使用列值的前多少个字符作为前缀索引。在此例中,idx_name_prefix是一个前缀索引,它将name列的前10个字符作为索引。
  • 联合索引(KEY):联合索引可以通过key_name列中的相同索引名称以及不同的seq_in_index值来识别。在seq_in_index列中,数字表示列在联合索引中的顺序。在此例中,idx_category_price是一个联合索引,包括category和price两个列。

在这两行中,key_name列的值都是idx_category_price,表明它们属于同一个索引。

seq_in_index列的值分别为1和2,表示category和price这两个列在联合索引中的顺序。 

注意,SHOW INDEX语句及返回的结果列可能会因MySQL版本的不同而有所差异。

本解释基于MySQL 8.0版本。在其他版本中,返回的结果列可能有所不同。要获取与您的MySQL版本对应的详细信息,请查阅官方文档。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • debian6配置mysql允许远程连接的方法(图)

    debian6配置mysql允许远程连接的方法(图)

    这篇文章主要介绍了debian6配置mysql允许远程连接的方法,大家可以参考,最后可看图
    2013-11-11
  • MySQL从连接到查询的问题及解决方案

    MySQL从连接到查询的问题及解决方案

    MySQL是一个功能强大、应用广泛的关系型数据库管理系统,本文给大家介绍MySQL从连接到查询的问题及解决方案,感兴趣的朋友跟随小编一起看看吧
    2026-02-02
  • MySQL count(*/column)查询优化的实现

    MySQL count(*/column)查询优化的实现

    count()是SQL中一个常用的聚合函数,其被用来统计记录的总数,本文主要介绍了MySQL count(*/column)查询优化的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-09-09
  • Mysql中group by 使用中发现的问题

    Mysql中group by 使用中发现的问题

    当使用MySQL的GROUP BY语句时,根据指定的列对结果进行分组,这种情况通常是由于在 GROUP BY 中选择的字段与其他非聚合字段不兼容,或者在 SELECT 子句中没有正确使用聚合函数所导致的,本文给大家介绍Mysql中group by 使用中发现的问题,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • MySQL安全配置向导mysql_secure_installation详解

    MySQL安全配置向导mysql_secure_installation详解

    这篇文章主要介绍了MySQL安全配置向导mysql_secure_installation各项配置的含义,并依据经验给予一了一些建议,需要的朋友可以参考下
    2014-03-03
  • MySQL索引用法实例分析

    MySQL索引用法实例分析

    这篇文章主要介绍了MySQL索引用法,结合实例形式较为详细的分析了mysql索引的功能、定义、使用方法与相关注意事项,需要的朋友可以参考下
    2016-07-07
  • MySQL池化框架学习接池自定义

    MySQL池化框架学习接池自定义

    这篇文章主要为大家介绍了MySQL连接池自定义示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Linux下mysql 5.6.17 安装图文教程

    Linux下mysql 5.6.17 安装图文教程

    这篇文章主要为大家详细介绍了Linux下mysql 5.6.17 安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • MySQL 4G内存服务器配置优化

    MySQL 4G内存服务器配置优化

    MySQL对于web架构性能的影响最大,也是关键的核心部分。下面我们了解一下MySQL优化的一些基础,MySQL自身(my.cnf)的优化
    2017-07-07
  • Mysql 主从数据库同步(centos篇)

    Mysql 主从数据库同步(centos篇)

    Mysql 主从数据库同步(centos篇),需要的朋友可以参考下。
    2011-05-05

最新评论