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

StackOverflow https://stackoverflow.com/questions/565997

  •  05-09-2019
  •  | 
  •  

Вопрос

простой вопрос, но он не дает мне покоя уже некоторое время....

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

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

Это было полезно?

Решение

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

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

Я цитирую:

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

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

Другие советы

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

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

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

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

Накладные расходы составляют Data_free Данные Свободны таблицы, то есть Количество выделенных, но неиспользуемых байтов. Мы можем найти его с помощью SQL-команды ПОКАЗАТЬ СОСТОЯНИЕ ТАБЛИЦЫ.Это свободное пространство выделенного размера для вашего стола.

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

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

После удаления большой части таблицы MyISAM или АРХИВА или внесения многих изменений в таблицу MyISAM или АРХИВА со строками переменной длины (таблицы, содержащие столбцы VARCHAR, VARBINARY, BLOB или TEXT).Удаленные строки сохраняются в связанном списке, и последующие операции ВСТАВКИ повторно используют старые позиции строк.<

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top