在 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;
相关文章
如何在 MySQL 中声明和使用变量
发布时间:2024/03/26 浏览次数:115 分类:MySQL
-
当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。
在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞
发布时间:2024/03/26 浏览次数:82 分类:MySQL
-
你将了解阻止主机的原因。此外,通过使用 phpMyAdmin 和命令提示符刷新主机缓存来解除阻塞的不同方法和效果。