Форум сайта python.su
Что выбрать MyISAM или InnoDB для проекта на Django ?
Офлайн
Если не можете сами разобраться с рекомендациями из документации MySQL (там спец раздел есть), то дайте больше сведений об организации данных и работе вашего сайта.
Офлайн
Lexander, в основном у меня будет выборка данных, join часто будет использоваться !
Офлайн
Если это единственные требования, то все равно.
Но я очень в этом сомневаюсь, что это единственные требования.
Вы доку таки почитайте. ;)
Офлайн
innodb, забудьте про myisam
Офлайн
В плане выборки myisam будет быстрее.
Офлайн
Если проект простенький, тогда можно и посмотреть в сторону SQLite.
Тогда в плане скорости на “выборку данных” будет намного быстрее чем в MySQL.
А если выбирать из MySQL , тогда inniDB -> там возможностей намного больше (транзакции, внешние ключи…).
Отредактировано Saturn (Сен. 29, 2013 15:15:49)
Офлайн
Доброго времени суток!
InnoDB, если Вам нужна поддержка транзакций (транзакции - это отличный способ избавиться от ненужных локов (lock). К примеру, Вы можете делать update без блокировки таблицы. Такие операции бывают очень продолжительными при больших объёмах данных.)
Myisam - это не плохо. Не верьте тому, кто утверждает, что это плохо. К примеру, никакой engine, использующий дисковую подсистему не будет работать быстрее на вставку данных (insert), чем myisam. Так же myisam поддерживает режим восстановления (repair), чего нет у innodb. Myisam проявляет себя быстрее не только на insert, но и на выборках (select). Так же нельзя отметить встроенную поддержку полнотекстового поиска (хотя лучше использовать внешние решения: solr, sphinx, и т.д.) и, что не так важно сегодня - меньшее потребление дискового пространства, в отличии от InnoDB.
Если Ваш проект не нуждается не в скорости, ни в экономии дискового пространства, ни в нативном полнотекстовом поиске, то я бы посоветовал Вам использовать InnoDB, как простое решение, отлично работающее с Django. Ещё одним плюсом InnoDB можно назвать то, что в виду наличия транзакций Вы всегда сможете делать бекапы своей базы без локов таблиц, а значит - не мешая работе проекта. Просто используйте ключ –single-transaction у mysqldump.
Надеюсь, что помог Вам осуществить выбор, желаю Вашему проекту скорости и стабильности в работе с БД.
Спасибо!
Офлайн
У меня логика простая. Человек не написал требований к проекту. Значит он нуб. Раз нуб, пускай юзает innodb и набивает шишки об целостность данных и транзакции. Не нужен ему MyISAM.
Офлайн
А я бы посоветовал новичку myisam, чтобы оценить преимущество транзакций и бинлога
Но я решил описать простыми словами каждый engine, чтобы человек сделал всё же осознанный выбор, а не последовал слепо совету специалистов.
Офлайн