MySQL修改默认存储引擎

本文介绍了MySQL的存储引擎,包括MyISAM和InnoDB的特点及适用场景,并解释了如何指定及修改存储引擎。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql存储引擎:

MySQL服务器采用了模块化风格,各部分之间保持相对独立,尤其体现在存储架构上。存储引擎负责管理数据存储,以及MySQL的索引管理。通过定义的API,MySQL服务器能够与存储引擎进行通信。目前使用最多的是MyISAM和InnoDB。InnoDB被Oracle收购后,MySQL自行开发的新存储引擎Falcon将在MySQL6.0版本引进。

MyISAM引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用。MyISAM中,一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MYI存储索引。

InnoDB则是一种支持事务的引擎。所以的数据存储在一个或者多个数据文件中,支持类似于Oracle的锁机制。一般在OLTP应用中使用较广泛。如果没有指定InnoDB配置选项,MySQL将在MySQL数据目录下创建一个名为ibdata1的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的日志文件。

创建table时可以通过engine关键字指定使用的存储引擎,如果省略则使用系统默认的存储引擎:CREATE TABLE t (i INT) ENGINE = MYISAM;

查看系统中支持的存储引擎类型:

1 mysql> show engines;| Engine | Support | Comment || MyISAM | YES | Default engine as of MySQL 3.23 with greatperformance |
2 | MEMORY | YES | Hash based, stored in memory, useful for temporarytables |
3 | InnoDB | DEFAULT | Supports transactions, row-level locking, andforeign keys |
4 | BerkeleyDB | NO | Supports transactions and page-level locking|
5 | BLACKHOLE | NO | /dev/null storage engine (anything you write toit disappears) |
6 | EXAMPLE | NO | Example storage engine |
7 | ARCHIVE | YES | Archive storage engine |
8 | CSV | NO | CSV storage engine |
9 | ndbcluster | NO | Clustered, fault-tolerant, memory-based tables|
10 | FEDERATED | NO | Federated MySQL storage engine |
11 | MRG_MYISAM | YES | Collection of identical MyISAM tables |
12 | ISAM | NO | Obsolete storage engine |12 rows in set (0.00 sec)

标准安装程序中只提供部分引擎的支持,如果需要使用其他的存储引擎,需要使用源代码加不同的参数重新编译。其中DEFAULT表明系统的默认存储引擎,可以通过修改配置参数来变更:

default-storage-engine=MyISAM

查看某个存储引擎的具体信息

1 mysql> show engine InnoDB status\G;

一般安装系统默认是INNODB

default-storage-engine=INNODB

  1.可以在启动数据库服务器时在命令行后面加上–default-storage-engine或–default-table-type选项。
  2.更灵活的方式是在随MySQL服务器发布同时提供的MySQL客户端时指定使用的存储引擎。最直接的方式是在创建表时指定存储引擎的类型,向下面这样:

1 CREATE TABLE mytable (id int, titlechar(20)) ENGINE = INNODB

修改表的存储引擎:

1 ALTER TABLE engineTest ENGINE = INNODB;

修改默认存储引擎:

在mysql配置文件(linux下为/etc/my.cnf),在mysqld后面增加default-storage-engine=INNODB即可。

但是如果表建立的时候是MyISAM,要更改整个数据库表的存储引擎,一般要一个表一个表的修改,比较繁琐,可以采用先把数据库导出,得到SQL,把MyISAM修改成INNODB,再导入的方式。

<think>首先,用户的问题是:“我想查询MySQL 5.7的默认存储引擎 请问MySQL 5.7 默认使用的存储引擎是什么”。这是一个关于MySQL数据库的查询。 现在,我需要参考系统级指令: - 所有行内数学达式必须使用$...$格式,但这里没有数学内容,所以可能不需要。 - 独立公式必须使用$$...$$格式并单独成段,但同样,没有数学公式。 - LaTeX语法正确:确保任何数学达正确,但这里不适用。 - 使用中文回答:用户的问题是用中文写的,所以我必须用中文回复。 - 生成相关问题:在回答结束时,我需要生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识:例如,[^1]。 用户可见层指令: - 回答结构清晰,帮助用户逐步解决问题。 - 保证回答真实可靠。 参考站内引用:提供了几个引用,我需要查看它们来回答问题。 引用内容: - 引用[1]: MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory 等。可以利用 SHOW ENGINES [^1]。 - 引用[2]: MySQL5.7版本操作默认存储引擎。演示第二种方法:在my.ini配置文件中设置default-storage-engine=INNODB [^2]。这默认是INNODB。 - 引用[3]: Centos Linux 离线安装 MySQL 5.7,没有直接相关 [^3]。 - 引用[4]: mysql 5.7 存储引擎,提到innodb_file_per_table默认 [^4]。 - 引用[5]: MySQL5.7 默认存储路径更改,关于日志文件路径,不直接相关 [^5]。 从引用[2]中,它说“如果向设置默认存储引擎为MyISAM,只需将default-storage-engine=INNODB参数的INNODB改为MyISAM即可。” 这明在MySQL 5.7中,默认存储引擎是InnoDB。 引用[4]也提到InnoDB是默认的。 所以,MySQL 5.7的默认存储引擎是InnoDB。 我需要构建回答: 1. 结构清晰:先直接回答问题,然后解释或提供更多细节。 2. 逐步解决问题:用户的问题是直接的,所以可能不需要太多步骤,但可以简要说明如何确认。 3. 添加引用:在引用信息时添加引用标识。 4. 生成相关问题:在结束时添加相关问题。 回答结构: - 开头:直接回答用户的问题。 - 中间:提供一些背景或如何确认的信息。 - 结尾:自然地添加相关问题。 用中文回复。 最终回答: MySQL 5.7 的默认存储引擎是 InnoDB。这可以通过查看官方文档或配置文件确认,例如在 my.ini 文件中,默认设置是 default-storage-engine=INNODB [^2]。 然后,生成相关问题: 相关问题: 1. 如何更改MySQL 5.7的默认存储引擎? 2. InnoDB存储引擎有什么特点? 3. MySQL 5.7支持哪些其他存储引擎? 确保引用正确:在回答中引用[2],因为它直接提到默认设置。 引用[1]也提到存储引擎,但没有指定默认;引用[2]更具体。 所以,在回答中引用[2]。</think>### MySQL 5.7 默认存储引擎查询 MySQL 5.7 的默认存储引擎是 **InnoDB**。这基于 MySQL 官方文档和配置文件的标准设置:在默认安装中,`default-storage-engine` 参数被设置为 `INNODB`,这确保了新创建的默认使用 InnoDB 引擎,以提供事务支持、崩溃恢复和高并发性能[^2]。 #### 如何确认默认存储引擎? 如果您需要自行验证或检查您的 MySQL 5.7 实例,可以按照以下步骤操作: 1. **查看配置文件**: 打开 MySQL配置文件 `my.ini`(Windows 系统)或 `my.cnf`(Linux 系统),在 `[mysqld]` 部分查找 `default-storage-engine=INNODB` 这一行。如果未显式设置,MySQL 5.7 也会默认使用 InnoDB[^2]。 2. **使用 SQL 命令验证**: 登录 MySQL 命令行后,执行以下查询: ```sql SHOW ENGINES; ``` 结果中,InnoDB 行的 `Support` 列会显示为 `DEFAULT`,示它是默认引擎[^1]。同时,您还可以运行: ```sql SELECT @@default_storage_engine; ``` 这将直接返回默认引擎的名称(应为 `InnoDB`)。 #### 为什么 InnoDB 是默认引擎? - InnoDB 支持 ACID 事务、行级锁和外键约束,适合大多数应用场景(如 Web 应用、金融系统)。 - 从 MySQL 5.5 版本开始,InnoDB 就取代 MyISAM 成为默认引擎,以提升数据安全性和性能[^1][^4]。 - 如果需要使用其他引擎(如 MyISAM 或 Memory),您可以在创建时显式指定,或通过修改配置文件更改默认设置[^2]。 如果您有更多细节(如操作系统环境),我可以提供更针对性的指导。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值