我目前正在MySQL中的所有数据库中使用MyISAM,但是我刚刚注意到,对于不是内存的表,我的information_schema数据库使用MyISAM。
我正在调查InnoDB/MyISAM问题。虽然我不认为这是原因,但我担心这种混合。数据库最初是用MyISAM建立的。稍后,更新my.cnf文件以将引擎重置为InnoDB。我使用的是MySQL 5.5.10。
如果将information_schema数据库设置为MyISAM,但将所有其他数据库设置为MySQL?,可能会出现哪些问题?
用于那些寻求帮助的人:--如果您遇到这个问题以寻找答案或想知道更多信息,请查看默认的数据库引擎:
show variables;若要查看分配给数据库中表的引擎:
show table status;我的my.cnf设置:
[client]
default-character-set=utf8
[mysqld]
log=/usr/local/var/mysql/mysqld.log
character-set-server = utf8
collation-server = utf8_general_ci
lower_case_table_names=2
default_storage_engine=InnoDB
# Performance hacks:
innodb_flush_method=nosync
innodb_flush_log_at_trx_commit=0发布于 2012-04-24 20:06:04
使用的存储引擎是按表计算的.在创建新表时使用默认存储引擎,并且不为新表指定存储引擎。
无论您将默认存储引擎设置为什么,系统表都应该是MyISAM。
来自MySQL文档
重要 不要将MySQL数据库(例如用户或主机)中的mysql系统表转换为InnoDB类型。这是一个不受支持的操作。系统表必须始终为MyISAM类型。
如果不直接查询information_schema表,则不需要混合这些类型。
https://stackoverflow.com/questions/10304719
复制相似问题