Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3517|Відповідь: 1

[Чайови] [Перенести] до MySQL Advanced: команда оптимізації таблиці

[Копіювати посилання]
Опубліковано 17.06.2023 11:40:34 | | |
Використовуючи mysql, ви можете помітити, що хоча таблиця видаляє багато даних, файли даних і індексні файли таблиці дивно малі. Це пов'язано з тим, що mysql залишає багато прогалин у даних при видаленні даних (особливо Text і BLOB), які займають простір оригінальних даних, тому розмір файлу не змінюється. Ці отвори можуть бути використані повторно в майбутньому при вставці даних, і, звісно, вони можуть залишатися там. Цей отвір не лише збільшує вартість зберігання, а й знижує ефективність сканування таблиці через фрагментацію даних.

Сценарії використання:Якщо ви видалили велику частину таблиці або внесли багато змін у таблицю з рядками змінної довжини (з стовпцями VARCHAR, BLOB або TEXT), слід використовувати OPTIMIZE TABLE. Видалені записи зберігаються у зв'язаному списку, а подальші операції INSERT повторно використовують старе місце запису. Ви можете використовувати OPTIMIZE TABLE для перепрофілювання невикористаного простору та організації фрагментів файлів даних. [Коли велика кількість даних видаляється з вашої бібліотеки, ви можете помітити, що розмір файлу даних не зменшився. Це пов'язано з фрагментацією, що залишилася у файлі даних після операції видалення.


У більшості налаштувань взагалі не потрібно запускати OPTIMIZE TABLE. Навіть якщо ви часто оновлюєте рядки змінної довжини, не потрібно часто запускати їх — раз на тиждень чи раз на місяць, лише для конкретних таблиць.

OPTIMIZE TABLE працює лише для таблиць MyISAM, BDB та InnoDB.

Для таблиць BDB таблиця OPTIMIZE наразі відображається у ANALYZE TABLE. Для таблиць InnoDB таблиця OPTIMIZE відображається з таблицею ALTER, яка відновлює таблицю. Операції перебудови, оновлення статистики індексу та звільнення невикористаного місця в кластеризованих індексах.

Примітка: MySQL блокує таблицю під час виконання OPTIMIZE TABLE.

Для myisam можна безпосередньо використовувати таблицю оптимізації table.name,Коли це движок InnoDB, він повідомляє: «Таблиця не підтримує оптимізацію, замість цього виконується recreate + analyze», і за нормальних обставин, якщо ви конвертуєте з myisam в innodb, ви використовуєте alter table table.name engine='innodb' для конвертації, і це також можна використовувати для оптимізації.Тому, коли це движок InnoDB, ми можемо використовувати alter table table.name engine='innodb' замість оптимізації

Щоб переглянути ефекти до і після, ви можете скористатися командою статусу таблиці показати, наприклад, статус таблиці з [бази даних], наприклад '[table_name]'; data_free у поверненому результаті — це простір для зберігання, зайнятий порожнечею.

Shell-скрипт, який реалізує ремонт пакетної таблиці MySQL з таймером та таблицю оптимізації таблиці для оптимізації, має наступний вигляд:

Оригінальний:

Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.




Попередній:Використовуйте інструмент SQLMAP infiltration для тестування SQL injection
Наступний:Навчальний посібник з встановлення Consul у тестовому середовищі Windows
 Орендодавець| Опубліковано 06.07.2023 18:54:17 |
--Контрольний


-- Приготуй стіл


-- Оптимізувати таблицю


Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com