Можно ли изменить одну базу данных для использования InnoDB вместо myISAM на MySQL - PullRequest
1 голос
/ 17 августа 2010

Я хочу иметь одну базу данных, которая использует таблицы InnoDB вместо таблиц myISAM (myISAM обычно дает мне хорошую производительность, поэтому я не хочу полностью ее использовать).

Можно ли указать, чтобаза данных использует таблицы InnoDB, если по умолчанию используется myISAM.

Ответы [ 5 ]

2 голосов
/ 17 августа 2010

Краткий ответ: да :

ALTER TABLE `my_table` Engine=InnoDB charset=utf8 collate=utf8_bin;
1 голос
/ 17 августа 2010

Вы можете указать ядро ​​базы данных для таблиц в базе данных. Вы даже можете иметь движки InnoDB и MyISAM для разных таблиц в одной базе данных.

Не думаю, что вы можете указать движок на уровне базы данных.

1 голос
/ 17 августа 2010

Невозможно указать механизм хранения для определенной базы данных, только для отдельных таблиц, как указали другие. Однако вы можете указать механизм хранения, который будет использоваться во время одного сеанса, с помощью

SET storage_engine=InnoDB;

, поэтому вам не нужно указывать его для каждой таблицы.

1 голос
/ 17 августа 2010

Вы всегда можете указать тип двигателя, который хотите использовать при создании таблицы.

CREATE TABLE customers (a INT, b CHAR (20)) ENGINE=InnoDB;
1 голос
/ 17 августа 2010

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

...