Коллеги, DBA.
Как узнать распределение значений в столбце согласно индексу?


Дана таблица.
Выполняемый запрос: DELETE FROM history_uint WHERE (clock < '1602720000');


Немного о таблице/столбце:


Cardinality (SHOW INDEXES) ~1.5M уникальных значений
TABLE_ROWS (information_schema) ~1.8М строк всего
Data_length (TABLE STATUS) ~108 Гб данных
Index_length (TABLE STATUS) ~55 Гб размер индекса


При выполнении запроса на очистку мускуль принимает решение не использовать индекс.


EXPLAIN:


( читать дальше... )


(В принципе, логично, т.к. я ожидаю, что очистится примерно 70% +/- всей таблицы)


Я хочу перестроить индекс (после того как таблица будет почищена - я не тороплюсь).


Но!
Чтобы принять решение о будущем типе индекса и его структуре мне нужно знать текущее распределение данных в разрезе индекса. Как его получить?


P.S. Я понимаю, что можно сделать мегаселект и сгруппировать, но есть ли способ прочитать именно данные об индексе - без самих данных.


P.S.S. Данные таблицы:


( читать дальше... )









 , ,






URL записи