赞
踩
创建新表时,可以通过在CREATE TABLE语句中添加ENGINE表选项来指定要使用的存储引擎:
- -- ENGINE=INNODB not needed unless you have set a different
- -- default storage engine.
- CREATE TABLE t1 (i INT) ENGINE = INNODB;
- -- Simple table definitions can be switched from one to another.
- CREATE TABLE t2 (i INT) ENGINE = CSV;
- CREATE TABLE t3 (i INT) ENGINE = MEMORY;
如果省略ENGINE选项,则使用默认存储引擎。默认引擎是MySQL 8.0中的InnoDB。
您可以使用--default-storage-engine指定默认引擎,也可以在my.cnf配置文件中设置默认存储引擎选项。
您可以通过设置default_storage_engine变量从当前会话设置默认存储引擎:
SET default_storage_engine=NDBCLUSTER;
通过在启动或运行时设置default_tmp_storage_engine,可以将使用CREATE TEMPORARY TABLE创建的临时表的存储引擎与永久表的引擎分开设置。
若要将表从一个存储引擎转换为另一个,请使用指示新引擎的ALTER TABLE语句:
ALTER TABLE t ENGINE = InnoDB;
请参阅“CREATE TABLE语句”和“ALTER TABLE语句”。
如果您尝试使用不匹配。或匹配但是停用的存储引擎,MySQL将使用默认存储引擎创建一个表。
例如,在主从复制中,也许源服务器使用InnoDB表是为了最大限度地提高安全性,但副本服务器使用其他存储引擎是为了提高速度,而牺牲了持久性或并发性。
默认情况下,只要CREATE TABLE或ALTER TABLE无法使用默认存储引擎,就会生成警告。若要防止在所需引擎不可用时出现混乱、意外的行为,请启用NO_ENGINE_SUBSTITUTION SQL模式。如果所需的引擎不可用,此设置将产生错误而不是警告,并且不会创建或更改表。
请参阅“Server SQL模式”。
MySQL可以将表的索引和数据存储在一个或多个其他文件中,具体取决于存储引擎。
表和列定义存储在MySQL数据字典中。
请参阅“数据字典”。
单个存储引擎会为其管理的表创建所需的任何其他文件。如果表名包含特殊字符,则表文件的名称包含这些字符的编码版本。
如“标识符到文件名的映射”所述。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。