Переваги Барракуди та стиснення


12

Я читав про формати файлів MySQL «Антилопа» та «Барракуда» деякий час тому, і мені цікаво, чи зможу я отримати користь з Барракуди та Стиснення.

На даний момент мій сервер використовує антилопу, оскільки це за замовчуванням MySQL.
У мене багато разів виникали проблеми із пам'яттю через велику базу даних, яку я маю. Моя база даних щодня збільшується.

Схоже, що стиснення дає користь для кількох людей, наприклад:
http://www.mysqlperformanceblog.com/2008/04/23/real-life-use-case-for-barracuda-innodb-file-format/

Я розумію, що пам'ять і дисковий простір можуть бути меншими, але я не впевнений, чи розумію це (цитується зі статті):
"~ 5% завантаження процесора відповідно до вершини (від 80-100%, в основному чекаючи вводу / виводу)
0,01 середній час пошуку за первинним ключем (за 1-20 сек до перетворення) "

Я подумав, що ці дві речі НЕ покращуватимуться, оскільки якщо дані стиснуті, сервер повинен скасувати дію, щоб знову отримати вихідні дані, тож чи не має сенсу збільшення використання процесора?

Чи корисно це вам для читання / запису інтенсивних програм? Чи рекомендуєте ви змінити на Barracuda і Compression?

Вам відомі якісь питання Барракуди?
Здається, відповідь на наступне запитання вказує на декілька питань, але, оскільки це вже з 2011 року, я б сказав, що вони вже виправлені: /server/258022/mysql-innodb-how-to-switch -to-barracuda-формат

Відповіді:


14

Що стосується "Dynamic" , то нестиснений формат, призначений лише для Barracuda, дуже мало змінився від компактного, головним чином щодо того, як зберігаються краплі (та будь-які дуже динамічні поля) . У мене жодного разу не виникало проблем із компактними та динамічними, тому я можу сміливо рекомендувати динаміку Барракуди. Пам'ятайте, що Barracuda також підтримує старі надлишкові та компактні формати рядків .

Стаття, яку ви згадуєте, напевно, занадто стара (5.1), і, як Петро З., генеральний директор Percona, згадує про зауваження, вона може бути трохи оманливою. Це не означає, що стиснення не може бути величезним виграшем залежно від завантаженості. Однак я рекомендую спробувати його на версіях> = 5.6, оскільки і Facebook, і Oracle зробили багато вдосконалень.

Як новіші довідкові матеріали я рекомендую вам:

Зокрема, мені подобаються матеріали Facebook, оскільки вони є сторонніми особами (немає потреби в порядку денному), і вони мають одне з найбільших розгортань MySQL у світі. Як ви бачите, у них були дуже вдалі установки, що поєднували в собі SSD технологію зі стисненням.

Чи принесе вам користь? Це залежатиме від вашої завантаженості, робочого набору та налаштування (IOPS, пам'яті) . Залежно від того, якщо ви пов'язані IO, пов'язані з процесором або пов'язані з пам'яттю, стиснення в деяких випадках може негативно впливати, додаючи додаткові вимоги до процесора, пам'яті (як стислі, так і нестиснуті сторінки зберігаються в буферному пулі InnoDB) або генеруючи занадто багато збоїв стиснення, збільшуючи затримка. Це також залежить від типу даних: стиснення може сильно допомогти при великих текстових крапках, але може бути марним при вже стислих даних.

На моєму досвіді, на практиці є люди, для яких стиснення було святим моментом продуктивності, і вони дуже задоволені цим, але в інших випадках нам довелося повернутися до нестиснених даних, оскільки жодних прибутків не було. Хоча дуже велике навантаження для письма може здатися поганою обстановкою для стиснення, якщо у вашому конкретному випадку ви не пов'язані процесором та пам'яттю, але обмежені функцією iops, це може бути не менш корисним.

Взагалі, передбачити результати дуже важко, зазвичай вам слід встановити тестове середовище для тестування, а потім виявити, чому ви отримуєте кращі чи гірші результати (і таким чином ви можете грати з різними розмірами блоків тощо). Барракуда повністю безпечний. Стиснення може бути чи не для вас. І ви завжди можете експериментувати з іншими методами стиснення, такими як стиснення крапок на стороні клієнта (наприклад, якщо ви закінчите зв’язані з процесором) або іншими сторонніми двигунами, такими як RocksDB і TokuDB , у яких стиснення є важливим пріоритетом, оскільки він зосереджений у продуктивності для більших наборів даних, ніж InnoDB може впоратися.

Коротше кажучи: Основними причинами використання Barracuda є обробка BLOB, innodb_large_prefixсумісність (великі індекси) та стиснення. Динамічний, на MySQL 8.0 тепер формат файлу за замовчуванням.


1
Це дійсно ДУЖЕ та чітка відповідь! Це має сенс і саме той тип відповіді, який я бажав. Ви згадуєте MySQL 5.6 (це те, що я нещодавно оновив) і посилаєтесь на Facebook як приклад, як мені подобається, оскільки їм зазвичай доводиться долати проблеми перед усіма іншими. На жаль, перевірити це спочатку буде непросто, оскільки тестова середовище не матиме таке ж завантаження процесора / вводу / оперативної пам’яті, як виробництво, але справді мені доведеться спробувати! Дуже дякую за ваш час.
Нуно

Оскільки формат рядків можна вибирати на рівні таблиці, це може дати вам певну гнучкість для тестування на виробництві (після належного тестування на окремій машині). Однак такий підхід потенційно ускладнить налагодження та порівняльний аналіз.
jynus

Так, я, мабуть, спершу міг би спробувати перетворити кілька таблиць (можливо, не такі великі / використовувані). Однак для великих це вимагатиме декількох простоїв, а не лише 1 простой, де я б конвертував їх усі відразу. Я повинен побачити, який найкращий підхід. Я не розумію, однак, чому це ускладнить налагодження. Що саме тут маєш на увазі? Дуже дякую.
Нуно

1
У вас є такі інструменти, як pt-online-schema-change percona.com/doc/percona-toolkit/2.2/… для відтворення таблиць в Інтернеті. Я щойно згадував, що змішування лише деяких таблиць може ускладнити вимірювання змін процесора / пам'яті / іопсів через зміну двигуна і відрізняти їх від звичайних змін навантаження або через кешування змін при відтворенні. Також важко побачити на іншій машині з різним обладнанням, тому просто удачі!
jynus

Для ZFS це не зовсім добре, що при використанні LZ4 у файловій системі.
Денис Денисов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.