Раньше для каждой созданной базы данных я использовал:
mysql -u root -p
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL ON dbname.* TO 'dbuser'@'localhost';
а затем использовать базу данных, не думая о MyISAM или InnoDB
Как узнать механизм хранения, используемый в базе данных?
Вы можете проверить таблицу следующим образом:
USE <database>;
SHOW TABLE STATUS\G
вы получите вывод в следующих строках:
root@localhost/database> show table status\G
*************************** 1. row ***************************
Name: tablename
Engine: MyISAM
Version: 10
Row_format: Fixed
Rows: 101
Avg_row_length: 70
Data_length: 7070
Max_data_length: 19703248369745919
Index_length: 2048
Data_free: 0
Auto_increment: 1004
Create_time: 2009-12-07 20:15:53
Update_time: 2010-11-10 21:55:01
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
В этом запросе перечислены все таблицы InnoDB и их базы данных в MySQL:
SELECT table_name, table_schema
FROM information_schema.tables
WHERE engine = 'InnoDB';
Вы также можете перечислить все таблицы и их механизмы хранения:
SELECT table_name, table_schema, engine
FROM information_schema.tables;
Используйте команду 'show engine', чтобы просмотреть активный движок по умолчанию
Добавьте default-storage-engine = InnoDB в раздел [mysqld] файла my.cnf, чтобы механизм по умолчанию был активен.
Используйте команду 'show create table table_name', чтобы просмотреть движок по умолчанию в таблице.
Чтобы получить имя движка для конкретной таблицы
use <database_name>
show table status like '<table_name>';
Сменить двигатель
alter table <table_name> engine <engine_name>;