【发布时间】:2011-06-25 18:14:47
【问题描述】:
我希望我的所有表和整个数据库都使用 MyISAM 引擎。
我的项目专门使用 MyISAM 数据库。
我希望所有表的默认表处理程序都是 MyISAM。
【问题讨论】:
我希望我的所有表和整个数据库都使用 MyISAM 引擎。
我的项目专门使用 MyISAM 数据库。
我希望所有表的默认表处理程序都是 MyISAM。
【问题讨论】:
更新:自 MySQL 5.5.5 以来,InnoDB 一直是默认存储引擎。 MyISAM 现在是遗留的,但仍然存在。
此外,default-table-type 选项是 default-storage-engine 的同义词,在 MySQL 5.5 中被删除。而且,从 MySQL 5.6.3 开始,default-storage-engine 仅为永久表设置存储引擎。
查看你的默认存储引擎当前是做什么的:mysql> SHOW 引擎; MyISAM 长期以来一直是默认设置,但可能有人更改了它。
要将默认存储引擎改回 MyISAM,请将
default-table-type=myisam
在 my.cnf 中的 [mysqld] 部分下并重新启动 mysqld。
要将现有表更改回 MyISAM,请执行以下操作:
ALTER TABLE tbl_name ENGINE=MyISAM;
另外,数据库没有存储引擎,表有。因此要查看表使用的是哪个引擎:
SHOW CREATE TABLE tbl_name; or SHOW TABLE STATUS LIKE 'tbl_name'\G
【讨论】:
default-table-type 开头。更改为default-storage-engine 有效。应更新接受的答案以反映这一点。
MyISAM 是默认的存储引擎。但是,如果不是您的情况,您可以执行以下任何操作:
SET GLOBAL storage_engine = MyISAM;
SET SESSION storage_engine = MyISAM;
【讨论】:
对于 MySQL 5.7,添加以下行:
default-storage-engine=INNODB
在my.ini 或my.cnf。
官方文档在这里:https://dev.mysql.com/doc/refman/5.7/en/storage-engine-setting.html
这在 WAMP 3.0.6 和 MySQL 5.7.14 中对我有用,MyISAM 作为默认开箱即用,即使 MySQL 文档指出“默认引擎是 MySQL 5.7 中的 InnoDB”。
这是由 WAMP 开发人员解释的:
“我们在关于以下方面的问题上花费了过多的时间 INNODB 数据库损坏。
我们认为这是由于人们使用 INNODB 数据库而不是 了解这些表更复杂。他们只是 在 MYSQL 有机会之前关闭窗口并在关闭时杀死作业 干净地关闭其所有数据库,当然永远不要采取 曾经损坏的数据库的备份突然变得最多 重要的东西在那里生活。
所以我们决定制作默认数据库引擎 MISAM,因为它是 这些表不太可能发生。”
【讨论】:
MyISAM而不是InnoDB的问题