Стоит ли переходить с MyISAM на Innodb?
#1
19 июня 2009 в 23:05
Кто что думает? Скорость инсертов и селектов против псевдонадежности.
#2
20 июня 2009 в 08:13
для instant
#3
13 января 2010 в 00:21
Ну так кто-нибудь может популярно объяснить MyISAM vs Innodb в контексте инстанта?
Все-таки лайвстрит, битрикс, может еще что использует Innodb...
И если
В общем хотелось бы услышать более менее объективный ответ.
Все-таки лайвстрит, битрикс, может еще что использует Innodb...
И если
как сделать чтобы касалось.Хотя да, что об этом говорить, всё равно инстанта это не касается.
В общем хотелось бы услышать более менее объективный ответ.
Сегодня в 10:37
#4
13 января 2010 в 09:04
Вот цитата из описания таблиц InnoDB:
InnoDB предназначается для получения максимальной производительности при обработке больших объемов данных. По эффективности использования процессора этот тип намного превосходит другие модели реляционных баз данных с памятью на дисках. Технически InnoDB является завершенной системой управления базой данных в рамках MySQL. В InnoDB есть свой собственный буферный пул для кэширования данных и индексов в основной памяти. Таблицы и индексы InnoDB хранятся в специальном пространстве памяти, которое может состоять из нескольких файлов. В этом заключается отличие InnoDB от, например, таблиц MyISAM: каждая таблица MyISAM хранится в отдельном файле. Таблицы InnoDB могут быть любого размера даже в тех операционных системах, где установлено ограничение файла в 2 Гб. ... В настоящий момент (октябрь 2001 года) таблицы InnoDB применяются на нескольких больших сайтах баз данных, для которых важна высокая производительность. Так, таблицы InnoDB используются на популярном сайте новостей Slashdot.org. Формат InnoDB применяется для хранения более 1Тб данных компании Mytrix, Inc; можно привести пример еще одного сайта, где при помощи при помощи InnoDB обрабатывается средняя нагрузка объемом в 800 вставок/обновлений в секунду.
#5
13 января 2010 в 09:25
А самое главное, что ИНСТАНТ не использует все эти преимущества.
Хотя да, что об этом говорить, всё равно инстанта это не касается.
Как понять эти высказывания?
#6
13 января 2010 в 11:48
Насколько я понимаю, не использует эти преимущества, имеется ввиду, что аппарат транзакций не используется. Но это думаю и не нужно. А вот блокировка на уровне записи используется таблицами автоматом и никаких дополнительных телодвижений не нужно делать.
В то же время цитата из описания MyISAM-таблицТо есть один процесс вставляет информацию в таблицу, а другие в это время считывают информацию из этой же таблицы. Не понятно, а где же тогда применяется блокировка таблицы или я неправильно понимаю текст этого описания?
А вот в другом источнике советы:
В то же время цитата из описания MyISAM-таблиц
При помощи команды INSERT можно вставлять новые строки в таблицу, в середине файла данных которой нет свободных блоков, в то время как другие потоки считывают из таблицы информацию (совмещенная вставка). Свободный блок может быть получен при обновлении строки с динамической длиной, когда большее количество данных заменяется меньшим количеством или при удалении строк. Когда свободных блоков не остается, все последующие блоки снова будут вставляться как совмещенные.
А вот в другом источнике советы:
Innodb следует использовать: Когда взаимодействие с базой имеет характер OLTP (http://ru.wikipedia.org/wiki/OLTP) Когда требуются транзакции. Когда нужна высокая надежность хранения и быстрое восстановление после сбоя. Innodb хорошо справляется со смешанной нагрузкой (select/update/delete/insert). Минусы Innodb: могут возникать deadlock, не свойственные MyISAM; Медленнее выполняются insert операции и работа с блобами; Не поддерживается полнотекстовый поиск; Для Innodb нет поддержки mysqlhotcopy; С MyISAM есть одна нехорошая проблема, таблица может на ровном месте отказаться работать до выполнения REPAIR TABLE. Случается такое крайне редко, но и этого хватает. Пример: http://blog.lexa.ru/2008/10/05/vash_mysql___to_esche_g.html Поэтому с для MyISAM рекомендуется организовать периодический запуск mysqlcheck через cron. Из-за особенности организации блокировки (в MyISAM блокировка на уровне таблицы, в Innodb - на уровне строк), MyISAM имеет смысл использовать, когда преобладают операции insert или select, но крайне мало delete или update. Когда можно обойтись без транзакций. Когда выполняются запросы, характерные для OLAP (http://ru.wikipedia.org/wiki/OLAP) Когда таблица используется для хранения лога (поддержка конкурирующих insert); Когда нужно задействовать средства полнотекстового поиска.