【问题标题】:Exporting index table from MySQL database从 MySQL 数据库中导出索引表
【发布时间】:2019-05-27 06:58:50
【问题描述】:

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

【问题讨论】:

  • @P.Salmon 我正在使用 InnoDB 引擎。

标签: mysql phpmyadmin innodb database-indexes


【解决方案1】:

如果你有

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

然后

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

会给你索引的内容。但是,它不会向您显示作为 INDEX 开销的 B+Tree 的任何详细信息。

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

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

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

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

【讨论】:

    猜你喜欢
    • 2012-10-12
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    相关资源
    最近更新 更多