несколько вопросов по mysql

SCIF32

Есть ли какие-то стандартные средства, чтобы узнать:
cколько места на диске занимают те или иные таблицы и индексы в базе? (желательно получить таблицу ( | name | size | ?
Если по таблице из таблицы с 10 млн записей убрали 9 млн, то перестроится ли автоматически индекс? (должен по идее, но вдруг - нет? :shocked: )

ark21

show table status;
перестроится

SCIF32

спасибо

ermsoft

Две детали:
1) show table status для innodb работает статистически, ну то есть data size и index size показывает точно, а rows - методом монте-карло, +-50%;
2) если удаление 9 млн записей существенно поменяло распределение индекса, то возможно, стоит сделать analyze table, чтобы форсировать его пересчет.
Пример: если была таблица create table blah (id int, type enum('good', 'bad' value varchar(255 и стерли 9 миллионов записей типа 'bad', то скорее всего до analyze table запрос select * from blah where type = 'good' будет работать с использованием индекса, а после analyze table - без (потенциально быстрее).
Оставить комментарий
Имя или ник:
Комментарий: