Сравнения InnoDB vs MyISAM по-прежнему верны с точки зрения скорости чтения vs записи? [закрытый]

Я знаю, что есть куча других вопросов об этом. Проблема в том, что я нахожу до свидания консенсус по этому вопросу в отношении последних версий двигателей хранения.

некоторые люди сказали, что для чтения MyISAM быстрее, но "недавние" улучшения в InnoDB либо смягчили, либо устранили эту разницу. Это так?

в этой статье в блоге производительности MYSQL связывается с лот, как напрямую, так и из других статей, которые были связаны с вопросами здесь, но ему 3 года. Мы разработчики, мы практически работаем на собачьих годах-3 года-это возраст!

--

У меня есть несколько таблиц, некоторые из которых в основном написаны, а некоторые из которых в основном читаются и почти никогда не пишутся. Есть также много внешних ключей, которые требуют InnoDB в любом случае, поэтому они останутся как InnoDB, но я хотел бы знать, прав ли я изменить таблицы, которые в основном считываются и не имеют внешних ключей к MyISAM, или это бессмысленно делать, когда используются последние версии двух механизмов хранения?

--

Я ценю, что это может быть проголосовано, чтобы быть закрытым, но если это так, пожалуйста, вы могли бы ссылку на актуальную статью? Я уже пробовал поиск Google, ограниченный временными рамками, но статьи, связанные с теми же старыми статьями. Спасибо.

3 ответов


Как вы указываете, статье О блоге производительности MySQL уже почти 4 года. С тех пор InnoDB был значительно улучшен. Движок MyISAM не было.

только вчера был выпущен MySQL 5.5. Это первая версия, где InnoDB механизм хранения по умолчанию. Для причины. Oracle утверждает, что производительность Linux увеличивается в 3,5 раза, а Windows - в 15 раз (по сравнению с 5.1 InnoDB).


Я бы сказал, там почти нет разницы. Недавно я прочитал статью, которая развеяла этот миф, но, кажется, она больше не работает.

во всяком случае, я считаю, что описание между MyISAM и InnoDB теперь покоится в основном на вопросах

  • вам нужно работать с внешними ключами?
  • вам нужна блокировка уровня таблицы или уровня строки.

по крайней мере, это принципы, на которых я основываю свой выбор на.


в целом кажется, что консенсус должен в первую очередь использовать InnoDB, но есть еще некоторые области, в которых MyIsam намного быстрее InnoDB. У меня есть веб-сайт, который перечисляет время для беговых гонок и создает запись для каждого спортсменаwww.marastat.com. Наш сайт имеет в миллионном (ых) диапазоне спортсменов. Мы добавили функцию поиска и сделали подобный поиск по имени/фамилии и обнаружили, что использование InnoDB и индекса заняло более минуты для некоторых поисков полный. Мы сделали дубликат таблицы InnoDB и добавили полнотекстовые индексы в версию MyIsam, и большинство запросов могут завершиться за секунду или два.