迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

在 MySQL 中显示表或数据库的索引

作者:迹忆客 最近更新:2023/05/06 浏览次数:

本篇文章介绍了如何在 MySQL 中显示表或数据库的索引。 我们将学习如何从一个数据库或所有数据库中的一个或多个表中获取索引。

我们将使用 SHOW INDEXESSHOW EXTENDED INDEXSELECT DISTINCT 命令和 STATISTICS 表来获取索引。


什么是 MySQL 中的索引

数据库结构,很可能是我们可以用来增强数据库活动性能的 B 树,称为索引。 数据库中的一张表可以有一个或多个与该特定表关联的索引。

索引从多个列中检索所需的数据,提高了 MySQL 查询的效率。 如果我们在 MySQL 中不使用索引,则指定的 MySQL 查询将检查表的每一行(一条记录)以获取目标数据。

每当我们使用唯一键或主键创建表时,都会使用名为 PRIMARY 的字段表达式自动创建特殊索引,称为聚簇索引。

除PRIMARY之外的所有索引都是二级索引; 我们可以称它们为非聚集索引。

例如,我们有一个学生表,并且在 ID 列上创建了一个索引。 在这里,索引将包含一个表中学生 ID 值的排序列表,其中列表的每个值都伴随着对相应表(这里是学生)中具有该值的记录的引用。

以下是索引是什么的演示。

在 mysql 中显示表或数据库的索引


索引在 MySQL 中的重要性

让我们看下面的两个可视化演示,以观察如何使用以下查询搜索索引表和非索引表。

SELECT * FROM students WHERE Gender = 'Male'

搜索非索引表:

在 mysql 中显示表或数据库的索引 - 搜索未索引的表

搜索索引表:

在 mysql 中显示表或数据库的索引 - 搜索索引表

看,索引帮助我们只检索目标数据,而不是遍历表中的所有行。


在 MySQL 中使用 SHOW INDEXES 列出表或数据库的所有索引

我们可以使用以下查询从特定表或 MySQL 数据库中获取索引列表。

Show Indexes from a Table:

SHOW INDEXES FROM tableName;

上面的查询将列出您将通过 use databaseName 使用的当前数据库中指定表的所有索引; 询问。

如果您没有使用任何数据库,则可以使用以下查询来获取表的所有索引。

SHOW INDEX FROM tableName FROM databaseName;

或者,我们可以通过以下方式使用它。

SHOW INDEXES FROM tableName IN databaseName;

请记住,KEYSINDEXINDEXES 的同义词; 同样,IN 是 FROM 的同义词。 因此,我们可以在 SHOW INDEXES 中使用这些同义词。

# The queries below can be used alternatively,
# and produce the same results.
SHOW INDEXES FROM tableName IN databaseName;
SHOW INDEX IN tableName FROM databaseName;

或者

# The queries given below can be used alternatively,
# and produce the same results.
SHOW INDEXES FROM tableName IN databaseName;
SHOW KEYS FROM tableName IN databaseName;

我们学习了从我们作为数据库开发人员创建的表中获取索引列表的各种方法。 我们可以使用以下查询来获取数据库开发人员和数据库本身创建的所有索引。

SHOW EXTENDED INDEX from databaseName.tableName;

使用 SELECT DISTINCT 列出 MySQL 中模式(数据库)中所有表的所有索引

我们可以使用以下查询从特定数据库中获取所有表的所有索引的列表。 我们可以使用 INFORMATION_SCHEMA 中的 STATISTICS 表。

列出特定模式中所有表的所有索引:

# In the following query, you don't have to change anything except
# the value of `TABLE_SCHEMA` to get the table name accompanied
# with all indexes in that table.
SELECT DISTINCT
    TABLE_NAME,
    INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema_name';

使用 STATISTICS 表列出 MySQL 中所有模式(数据库)中所有表的所有索引

我们可以使用以下查询来访问模式(也称为数据库)中所有表的所有索引。

USE INFORMATION_SCHEMA;
SELECT * FROM STATISTICS;

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 MySQL 中声明和使用变量

发布时间:2024/03/26 浏览次数:115 分类:MySQL

当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。

在 MySQL 中实现刷新权限

发布时间:2024/03/26 浏览次数:211 分类:MySQL

本教程介绍了 MySQL 中的刷新权限命令,用于刷新授权表并影响允许的更改。

在 MySQL 中设置时区

发布时间:2024/03/26 浏览次数:93 分类:MySQL

在本教程中,我们将学习如何在 MySQL 服务器中更改时区。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便