Экспорт таблицы индексов из базы данных MySQL - PullRequest
1 голос
/ 27 мая 2019

Я недавно работаю над улучшением концепции индексации. как часть этого, я хочу знать, возможно ли экспортировать индексную таблицу, которую 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.

можно ли будет экспортировать данные таблицы индекса в виде csv из файла .ibd?

Я хочу экспортировать таблицу индексов, которую mysql создает внутри, в формате CSV.

1 Ответ

0 голосов
/ 28 мая 2019

Если у вас есть

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

Тогда

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

даст вам содержимое индекса. Тем не менее, он не будет отображать какие-либо подробности дерева B +, которые являются издержками INDEX.

PRIMARY KEY таблицы InnoDB - это дерево B + со всеми столбцами в порядке PK.

«Вторичный ключ» (уникальный или нет) представляет собой дерево B + со всеми столбцами вторичного индекса, а также любыми другими столбцами из PK. Также сортируется.

Префиксные индексы (например, INDEX(foo(7))) - это другое дело.

FULLTEXT и SPATIAL имеют собственную внутреннюю структуру, а не прямое дерево B +.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...