首页 > 解决方案 > 从 MySQL 数据库中导出索引表

问题描述

我最近正在研究更好的索引概念。作为其中的一部分,我想知道是否可以导出 mysql 内部生成的索引表。我希望能够以 CSV 的形式导出索引表。

我知道如何在数据库中创建索引:

Example : CREATE INDEX index_name ON table_name (column_list)

建立索引后,我可以通过以下方式看到它:

SHOW INDEX FROM table_name;

在 phpmyadmin 中,我可以在结构部分看到索引表。

我正在使用 InnoDB 引擎和对于 InnoDB 引擎,索引与表一起存储在表空间中。如果设置了 innodb_file_per_table 选项,索引将在表的 .ibd 文件中。

那么是否可以从 .ibd 文件中以 csv 的形式导出索引表数据?

我想以 CSV 格式导出 mysql 内部生成的索引表。

标签: mysqlphpmyadmininnodbdatabase-indexes

解决方案


如果你有

PRIMARY KEY (id),
INDEX(a,b)

然后

SELECT a, b, id INTO outfile ... FROM ... ORDER BY a,b,id

会给你索引的内容。但是,它不会向您显示作为INDEX.

InnoDB表PRIMARY KEY是一个 B+Tree,所有列都按 PK 顺序排列。

“辅助键”(是否唯一)是一个 B+Tree,其中包含辅助索引的所有列,以及 PK 中的任何其他列。它也被排序。

前缀索引(例如,INDEX(foo(7)))是另一回事。

FULLTEXT并且SPATIAL有自己的内部结构,而不是简单的B+Tree。


推荐阅读