Я работаю над социальным сайтом с примерным разделением чтения / записи 90/10. Пытаюсь определиться с движком MySQL. Меня интересуют:
Каковы их плюсы и минусы для моего варианта использования?
Несколько конкретных вопросов:
PBXT использует основанную на журналах структуру, исключающую двойную запись. Звучит очень элегантно, но тест, который я видел, не показывает никаких / больших преимуществ перед XtraDB. У вас есть опыт работы с PBXT / XtraDB, которым вы можете поделиться?
TokuDB звуки ОЧЕНЬ интересный. Но все тесты, которые я видел, касаются однопоточных массовых вставок - например, вставки 100 миллионов строк. это не очень актуально для OLTP. А как насчет его производительности при большом количестве одновременных потоков записи и чтения, одновременно работающих на нескольких ядрах? Кто-нибудь пробовал это?
Re: PBXT против XtraDB (InnoDB)
Я задал этот вопрос непосредственно Полу МакКаллаху. Вы можете прочитать его ответ здесь:
http://www.mysqlperformanceblog.com/2009/11/20/paul-mccullagh-answers-your-questions-about-pbxt/
Перефразируя: PBXT - это общий механизм OLTP, поэтому он значительно перекрывается с InnoDB. Большинство прямых «лучших вариантов использования» еще не известны.
Re: TokuDB против XtraDB (InnoDB)
Я думаю, это немного по-другому. Хотя у TokuDB есть некоторые свойства, которые могут быть полезны для OLTP, они действительно сияют:
а) Когда вы имеете дело с таким большим объемом данных, что ваши вставки замедляются из-за того, что ваши индексы больше не умещаются в памяти («классическая» проблема B-Tree, от которой TokuDB не страдает).
б) Когда вам нужно иметь много специальных индексов для данных.
Об этом Вадим говорит здесь: http://www.mysqlperformanceblog.com/2009/04/28/detailed-review-of-tokutek-storage-engine/
-
Из вашего описания я, возможно, сделаю предположение и скажу, что XtraDB и PBXT - наиболее очевидный выбор. Оба будут работать. В пользу XtraDB то, что он существует дольше.
(Отказ от ответственности: я работаю в Percona, авторах XtraDB).