Що стосується MySQL, серед двигунів зберігання немає порівняння, за винятком того, що він поділяється на дві основні категорії:
MySQL пропонує використання декількох двигунів зберігання даних
Щодо перелічених двигунів зберігання даних, єдиними, які мають відповідність ACID, є InnoDB та NDB. Чому це важливо згадати? Дві причини:
- Іншим двигунам зберігання даних просто не користується наявністю більше ядер, крім основного дискового вводу / виводу, використання процесора та загальної пропускної здатності.
- Код для кожного не транзакційного накопичувача, який в основному диктує 14 внутрішніх операцій незалежно від двигуна зберігання, не був розроблений з метою використання доступу до декількох ядер.
InnoDB під MySQL 5.5, InnoDB плагін) та XtraDB сервера Percona Server мають параметри, які можна встановити для доступу до декількох ядер (Percona Server займається цим довше). Насправді Percona вводить близько 30 000 рядків коду спеціально для підвищення продуктивності InnoDB з кожним новим випуском GA вихідного коду MySQL. Ми можемо бути впевнені, що Oracle включив власні вдосконалення зі свого власного аналітичного центру для роботи в InnoDB для багатоядерної роботи (починаючи з MySQL 5.1.38).
З необхідністю виконувати MVCC на даних у поєднанні з блокуванням рядків / сторінок, тепер ефективність транзакцій може бути інструментована, виміряна та налаштована.
Якщо є щось, що я дізнався про використання декількох ядер, це те, що ви повинні налаштувати InnoDB ефективно, а не просто покладатися на InnoDB поза коробкою .
ОНОВЛЕННЯ 2011-09-20 08:03 EDT
Що стосується того, що InnoDB отримує вигоду від усіх ядер, нам потрібно тримати речі в персепсиві. Сердечники повинні також стосуватися інших питань (ОС, диск, пам'ять, програми, моніторинг тощо) на сервері баз даних. Для тих, хто має скромні бюджети, у багатьох, як правило, сервер баз даних також надає NFS, моніторинг від Munin, підтримку додатків для JBoss, PHP і список продовжується. Якщо ви хочете, щоб MySQL, більш конкретно InnoDB, використовував більше ядер, сервер баз даних повинен бути призначений виключно для MySQL, а ОС / диск / пам'ять повинен мати властивість лише MySQL . Враховуючи таку перспективу, InnoDB залучатиме більше ядер без сумнівів .
Що стосується InnoDB Plugin, то згадувалося просто для демонстрації попередніх ініціатив щодо покращення InnoDB з боку MySQL (наприклад, Oracle. Вибачте, поки що мова ще не скачується). Нові змінні для виклику більшої активності стали очевидними з MySQL 5.1.38.
Наприклад, innodb_read_io_threads та innodb_write_io_threads (обидва з MySQL 5.1.38) виділяють вказану кількість потоків для читання та запису. За замовчуванням - 4, а максимум - 64. Налаштування за замовчуванням та макс. Значення настільки різні (4 - 64) показує, що InnoDB настільки багатопоточний та основний, як ви його налаштовуєте !!!
Задоволення потреб спільноти MySQL для доступу до більшої кількості ядер з InnoDB вела компанія Percona. Отже, MySQL почав наслідувати його. Я мушу визнати, що Oracle (yuck) вніс необхідні вдосконалення для більшої активності.