В MySQL что означает "Накладные расходы", что плохого в этом и как его исправить?

простой вопрос, но он уже навязывал мне какое-то время...

что такое "накладные расходы" в MySQL, и я должен волноваться?

делает щелчок "оптимизировать таблицу" исправить это для реального?

Ответ 1

Похоже, что накладные расходы - это временное дисковое пространство, которое база данных использовала для выполнения некоторых запросов, поэтому вы должны только беспокоиться, если это становится очень высоким.

Вы можете сравнить "Оптимизация таблицы" с дефрагментацией вашего жесткого диска.

Я цитирую:

Каждая база данных со временем, требуют некоторой поддерживать оптимальную производительность уровень. Очистка удаленных строк, переустановка, сжатие, управление индексные пути, дефрагментация и т.д. что называется OPTIMIZATION в mysql и другие термины в других базах данных. Например, IBM DB2/400 называет это РЕОРГАНИЗИРУЙТЕ ФИЗИЧЕСКИЙ ФАЙЛ.

Это похоже на изменение масла в ваш автомобиль или получить настройку. Вы можете думайте, что вам действительно не нужно, но так что ваш автомобиль работает намного лучше, вы получаете лучший пробег газа и т.д. Автомобиль что требует много пробега настраиваются чаще. База данных, которая требует особого использования. Если вы делаете много ОБНОВЛЕНИЯ и/или DELETE, и особенно если ваши таблицы имеют переменную длину столбцы (VARCHAR, TEXT и т.д.), вам нужно чтобы сохранить настройку.

Ответ 2

Если вы говорите о том, что phpMyAdmin вызывает overhead, то это фактический размер файла данных таблицы относительно идеального размера того же файла данных (как если бы он был только что восстановлен из резервной копии).

По соображениям производительности MySQL не сжимает файлы данных после удаления или обновления строк.

Это overhead плохо для сканирования таблицы, i. е. когда ваш запрос должен работать над всеми значениями таблицы, ему нужно будет искать более пустое пространство.

Вы можете избавиться от overhead, запустив OPTIMIZE TABLE, который будет уплотнять вашу таблицу и индексы.

Ответ 3

Накладные расходы Data_free таблицы, Количество выделенных, но неиспользуемых байтов. Мы можем найти его командой SQL SHOW TABLE STATUS. Это свободное пространство в выделенном размере для вашей таблицы.

Ответ 4

Оптимизация таблицы может быть очень проблематичной. Например, если таблица сильно используется на сайте.

http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

После удаления большой части таблицы MyISAM или ARCHIVE или внесения большого количества изменений в таблицу MyISAM или ARCHIVE с строками переменной длины (таблицы с столбцами VARCHAR, VARBINARY, BLOB или TEXT). Удаленные строки сохраняются в связанном списке, а последующие операции INSERT повторно используют старые позиции строк. <

Я считаю, что подтвердил это поведение. И это действительно было бы очень полезно.