Mysql设置存储引擎

创建新表时,可以通过ENGINE在语句中添加表选项 来指定使用哪个存储引擎CREATE TABLE:

-- 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选项时,将使用默认存储引擎。默认引擎 InnoDB在 MySQL 8.0 中。您可以使用 --default-storage-engine服务器启动选项或通过 default-storage-engine在配置文件中设置该选项来指定默认引擎my.cnf。

您可以通过设置变量为当前会话设置默认存储引擎 default_storage_engine:

SET default_storage_engine=NDBCLUSTER;

通过在启动时或运行时 设置 ,可以将TEMPORARY创建的表的 存储引擎CREATE TEMPORARY TABLE与永久表的引擎分开设置 。default_tmp_storage_engine

要将表从一个存储引擎转换为另一个存储引擎,请使用 ALTER TABLE指示新引擎的语句:

ALTER TABLE t ENGINE = InnoDB;

如果您尝试使用未编译或已编译但停用的存储引擎,则 MySQL 会使用默认存储引擎创建一个表。例如,在复制设置中,也许您的源服务器使用InnoDB 表来获得最大的安全性,但副本服务器使用其他存储引擎来提高速度,但会牺牲持久性或并发性。

CREATE TABLE默认情况下,每当或 ALTER TABLE不能使用默认存储引擎 时都会生成警告 。为防止在所需引擎不可用时发生混乱的意外行为,请启用 NO_ENGINE_SUBSTITUTIONSQL 模式。如果所需的引擎不可用,此设置会产生错误而不是警告,并且不会创建或更改表。

MySQL 可以将表的索引和数据存储在一个或多个其他文件中,具体取决于存储引擎。表和列定义存储在 MySQL 数据字典中。各个存储引擎创建它们管理的表所需的任何附加文件。如果表名包含特殊字符,则表文件的名称包含这些字符的编码版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值