Оптимизировать базу данных InnoDB - PullRequest
0 голосов
/ 21 октября 2010

У меня есть простая таблица базы данных с нагрузкой 170 МБ.

Это то, что мне нужно беспокоиться? Когда я запускаю на нем Оптимизацию, он говорит мне, что innodb не поддерживает оптимизацию и поэтому воссоздает таблицу, но все еще имеет издержки 170 МБ.

Это то, что я могу удобно игнорировать?

ура!

Ответы [ 2 ]

1 голос
/ 28 октября 2010

Существует множество советов по поводу мусора при оптимизации таблиц.

Если под «накладными расходами» вы подразумеваете свободное пространство, имейте в виду, что InnoDB естественным образом оставляет страницы заполненными на 93% (15/16), чтобы оставить пробелы для последующих обновлений.

Когда вы оптимизируете таблицы, они также фактически не воссоздают их оптимальным способом. Он воссоздает определение таблицы и затем копирует данные в нее построчно. Индексы первичных ключей таким образом не фрагментируются, но могут быть и вторичные ключи (поскольку они могут быть вставлены не по порядку, вызывая разбиение / фрагментацию страниц с первого дня).

Барон пишет хороший пост об этом здесь: http://www.xaprb.com/blog/2010/02/07/how-often-should-you-use-optimize-table/

0 голосов
/ 21 октября 2010

Это то, что я могу удобно игнорировать?

Это зависит. Если все умещается в ОЗУ, все в порядке.

Какой двигатель вы используете? mysql> show create table table_name; InnoDB поддерживает оптимизацию таблицы.

Mysql 5.1 innodb поддерживает оптимизацию: http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

Mysql 5.0 innodb поддерживает оптимизацию: http://dev.mysql.com/doc/refman/5.0/en/optimize-table.html

MySQL 4.1 innodb поддерживает оптимизацию: http://dev.mysql.com/doc/refman/4.1/en/optimize-table.html

...