我最近正在研究更好的索引概念。作为其一部分,我想知道是否可以导出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内部生成的索引表。
答案 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))
)是另一回事。
FULLTEXT
和SPATIAL
拥有自己的内部结构,而不是简单的B + Tree。