在 MySQL 中显示表或数据库的索引
本篇文章介绍了如何在 MySQL 中显示表或数据库的索引。 我们将学习如何从一个数据库或所有数据库中的一个或多个表中获取索引。
我们将使用 SHOW INDEXES
、SHOW EXTENDED INDEX
、SELECT DISTINCT
命令和 STATISTICS
表来获取索引。
什么是 MySQL 中的索引
数据库结构,很可能是我们可以用来增强数据库活动性能的 B 树,称为索引。 数据库中的一张表可以有一个或多个与该特定表关联的索引。
索引从多个列中检索所需的数据,提高了 MySQL 查询的效率。 如果我们在 MySQL 中不使用索引,则指定的 MySQL 查询将检查表的每一行(一条记录)以获取目标数据。
每当我们使用唯一键或主键创建表时,都会使用名为 PRIMARY 的字段表达式自动创建特殊索引,称为聚簇索引。
除PRIMARY之外的所有索引都是二级索引; 我们可以称它们为非聚集索引。
例如,我们有一个学生表,并且在 ID 列上创建了一个索引。 在这里,索引将包含一个表中学生 ID 值的排序列表,其中列表的每个值都伴随着对相应表(这里是学生)中具有该值的记录的引用。
以下是索引是什么的演示。
索引在 MySQL 中的重要性
让我们看下面的两个可视化演示,以观察如何使用以下查询搜索索引表和非索引表。
SELECT * FROM students WHERE Gender = 'Male'
搜索非索引表:
搜索索引表:
看,索引帮助我们只检索目标数据,而不是遍历表中的所有行。
在 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;
请记住,
KEYS
和INDEX
是INDEXES
的同义词; 同样,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;
相关文章
使用 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() 的组合。
使用 Ubuntu 连接远程 MySQL 服务器的不同方法
发布时间:2023/05/09 浏览次数:97 分类:MySQL
-
在本文中我们将学习如何使用 Ubuntu 连接远程 MySQL 服务器来操作数据以及启动和停止 MySQL 服务器。
在 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)。