просте запитання, але це мене на деякий час наганяє ...
що таке "накладні витрати" в MySQL, і чи варто мене турбувати?
чи натиснути кнопку "оптимізувати таблицю" виправити це справді?
просте запитання, але це мене на деякий час наганяє ...
що таке "накладні витрати" в MySQL, і чи варто мене турбувати?
чи натиснути кнопку "оптимізувати таблицю" виправити це справді?
Відповіді:
Здається, що накладні витрати - це тимчасова дисковий простір, яку база даних використовувала для запуску деяких запитів, тому вам слід хвилюватися лише в тому випадку, якщо вона стає дійсно високою.
Ви можете порівняти "Оптимізація таблиці" з дефрагментацією вашого жорсткого диска.
Цитую:
Кожна база даних з часом потребує певної форми обслуговування, щоб підтримувати її на оптимальному рівні продуктивності. Очищення видалених рядків, перевпорядкування, стиснення, управління шляхами індексу, дефрагментація тощо - це те, що в mysql та інших термінах відоме як ОПТИМІЗАЦІЯ та інші терміни в інших базах даних. Наприклад, IBM DB2 / 400 називає її РЕОРГАНІЗАЦІЙНИМ ЧЛЕНОМ ФІЗИЧНОГО ФАЙЛУ.
Це схоже на те, щоб поміняти масло у вашому автомобілі або налаштувати. Ви можете подумати, що вам справді цього не потрібно, але, зробивши так, ваш автомобіль працює набагато краще, ви покращуєте пробіг газу тощо. Автомобіль, який отримує багато пробігу, потребує відремонтування частіше. База даних, яка отримує велике використання, вимагає того ж. Якщо ви виконуєте багато операцій ОНОВЛЕННЯ та / або ВИДАЛЕННЯ, і особливо якщо у ваших таблицях є стовпчики змінної довжини (VARCHAR, TEXT тощо), вам потрібно буде постійно налаштовувати.
Якщо ви говорите про те, що phpMyAdmin
викликає дзвінок overhead
, то це фактичний розмір файлу даних таблиці відносно ідеального розміру того ж файлу даних (як би коли він був відновлений із резервної копії).
З міркувань продуктивності MySQL
не стискає файли даних після видалення або оновлення рядків.
Це overhead
погано для сканування таблиці, тобто коли ваш запит повинен виконувати всі значення таблиці, йому потрібно буде переглянути більше порожнього простору.
Ви можете позбутися від overhead
запуску, OPTIMIZE TABLE
який ущільнить вашу таблицю та індекси.
Накладні дані - це дані, які не містять даних таблиці, тобто кількість виділених, але невикористаних байтів. Ми можемо знайти його за командою SQL SHOW TABLE STATUS . Це вільний простір у виділеному розмірі для вашого столу.
Оптимізувати таблицю може бути дуже проблематично. Наприклад, якщо таблиця сильно використовується на сайті.
http://dev.mysql.com/doc/refman/5.1/uk/optimize-table.html
Після видалення значної частини таблиці MyISAM або ARCHIVE або внесення багатьох змін до таблиці MyISAM або ARCHIVE зі рядками змінної довжини (таблиці, що містять стовпці VARCHAR, VARBINARY, BLOB або TEXT). Видалені рядки зберігаються у пов'язаному списку, а наступні операції INSERT повторно використовують старі позиції рядків. <
Я вважаю, що я підтвердив цю поведінку. І це, безумовно, було б дуже корисно.