Подтвердить что ты не робот

MySQL - InnoDB против MyISAM

Вчера я прочитал следующую статью (http://blogs.sitepoint.com/2010/11/19/mysql-mistakes-php-developers/) и написал следующее:

В MySQL есть несколько двигателей баз данных, но вы, скорее всего, столкнетесь с MyISAM и InnoDB.

MyISAM используется по умолчанию. Однако, если вы создаете очень простую или экспериментальную базу данных, это почти наверняка неправильный выбор! MyISAM не поддерживает ограничения внешнего ключа или транзакции, которые необходимы для целостности данных. Кроме того, вся таблица блокируется всякий раз, когда запись вставлена ​​или обновлена: это приводит к пагубному влиянию на производительность по мере роста использования.

Решение прост: используйте InnoDB.

Я всегда использовал MyISAM, потому что он был по умолчанию. Как вы думаете?

Если мне нужно обновить до InnoDB, в phpMyAdmin, я могу просто отредактировать каждую таблицу и изменить ее в innoDB или выполнить более сложный процесс?

Спасибо!

4b9b3361

Ответ 1

Да, вы можете поменять местами двигатели, как использованное нижнее белье, если хотите, без особых проблем. Просто измените его в phpmyadmin.

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

Стоит отметить, что есть веские причины использовать MyISAM. Посмотрите на индексацию FULLTEXT. Вы не можете сделать это с помощью InnoDB.

UPDATE

Начиная с MySQL 5.6 FULLTEXT был также реализован для таблиц InnoDB. Вот руководство.

Ответ 2

Извините за то, что вы столкнулись с старым вопросом, но это также помогло мне выбрать, какой движок, тем более что MyISAM быстрее читает, а в моих таблицах базы данных больше читайте:

http://www.rackspace.com/knowledge_center/article/mysql-engines-myisam-vs-innodb