从MySQL数据库导出索引表

时间:2019-05-27 06:58:50

标签: mysql phpmyadmin innodb database-indexes

我最近正在研究更好的索引概念。作为其一部分,我想知道是否可以导出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内部生成的索引表。

1 个答案:

答案 0 :(得分:0)

如果有

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

然后

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

将为您提供索引的内容。但是,它不会向您显示B + Tree的任何详细信息,而这是INDEX的开销。

InnoDB表的PRIMARY KEY是B + Tree,所有列均按PK顺序进行。

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

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

FULLTEXTSPATIAL拥有自己的内部结构,而不是简单的B + Tree。