|
|
|
| Почему в больших базах применяют именно InnoDB а не MyISAM? | |
|
|
|
|
|
|
|
для: Ильдар
(11.06.2011 в 19:55)
| | его применяют там где нужны транзакции и блокировка на уровне строк а не всей таблицы | |
|
|
|
|
|
|
|
для: Ильдар
(11.06.2011 в 19:55)
| | К большой таблице, как правило, и запросов много и выполняются они дольше, так как объем значительный. Поэтому если блокировать всю таблицу размером в десяток гигабайт, при каждом INSERT/DELETE/UPDATE запросах, выстроится гигантская очередь. Когда блокировка идет на уровне строк - это проблема снимается, так как блокировке подвергается только малая часть таблицы. Кроме того, таблицы InnoDB хорошо делятся на части, что особенно важно в системах с ограничением объема одного файла (пресловутые 4Гб на 32-разрядных системах). Кэш у них интереснее устроен, например, в MyISAM до 5.1 под кэш ключей больше 2Гб было невозможно отвести, даже если у вас на сервере 32Гб оперативной памяти, у InnoDB таких ограничений не было, можно отвести очень много оперативной памяти, где пол базы данных будет тусоваться.
PS За блокировку на уровне строк, кстати, приходится довольно дорого расплачиваться - это не сверхбыстрое удовольствие. Именно поэтому на небольших базах данных MyISAM значительно быстрее InnoDB (при тех же объемах таблиц). | |
|
|
|
|
|
|
|
для: cheops
(11.06.2011 в 20:57)
| | вот у меня база к примеру на 100 - 200 тыщ записей. Размеры 20-30 мегабайт.
Запросы только SELECT.
Думаю оставить Майисам?
Или при сборе информации в 200 тыщ записей сделать таблицу в myisam а потом переделать в innodb для дальнейших запросов к ней? | |
|
|
|
|
|
|
|
для: Ильдар
(11.06.2011 в 21:45)
| | Хмм. Вот моя база
35 table(s) Sum 1,042,638 MyISAM cp1251_general_ci 792.4 MiB
| И ничего, работает довольно шустро | |
|
|
|
|
|
|
|
для: Добрый кот
(11.06.2011 в 22:03)
| | а ты какие функции используешь? | |
|
|
|
|
|
|
|
для: Ильдар
(11.06.2011 в 22:27)
| | select, insert, update | |
|
|
|
|
|
|
|
для: Ильдар
(11.06.2011 в 21:45)
| | Если SELECT - основной оператор - оставляйте не задумываясь. Тем более, на хостингах редко бывает хорошо настроен тип InnoDB. Настроить СУБД одновременно на два типа и на MyISAM и на InnoDB - это нужно очень много оперативной памяти. | |
|
|
|