迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 Mysqldump 备份 MySQL 中的数据

发布时间:2023/05/09 浏览次数:192 分类:MySQL

本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。

更新 MySQL 表中的主键

发布时间:2023/05/09 浏览次数:61 分类:MySQL

本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。

在 MySQL 中获取命令历史记录

发布时间:2023/05/09 浏览次数:150 分类:MySQL

本文重点介绍了在 Windows 和 Linux 中获取我们已执行的 MySQL 命令历史记录的各种方法。MySQL命令历史

Oracle 的 decode 函数在 MySQL 中的等价物

发布时间:2023/05/09 浏览次数:115 分类:MySQL

本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。

在 Linux 中安装 MySQL 客户端

发布时间:2023/05/09 浏览次数:72 分类:MySQL

在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。

在 MySQL 中转换为十进制

发布时间:2023/05/09 浏览次数:150 分类:MySQL

有时,我们可能需要将一种数据类型转换为另一种数据类型。 下面是我们如何使用带有 DECIMAL(M,D) 的 CAST() 和 CONVERT() 函数在 MySQL 中转换为十进制。

在 MySQL 中获取当前日期和时间

发布时间:2023/05/09 浏览次数:145 分类:MySQL

本篇文章我们将学习 NOW()、CURRENT_TIMESTAMP()(也写为 CURRENT_TIMESTAMP)和 SYSDATE() 来获取 MySQL 中的当前日期和时间。 我们还将看到这三个功能之间的比较。在 MySQL 中获取当前日期和时间

更改 MySQL 服务器中的 max_allowed_packet Size

发布时间:2023/05/09 浏览次数:142 分类:MySQL

本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便