MySQL存储引擎

什么是存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。

现在许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。

在MySQL客户端中,使用以下命令可以查看MySQL支持的引擎。

复制代码
mysql>show engines

1.mysql存储引擎

MyISAM 存储引擎不支持事务,也不支持外键,特点是访问速度快,对事务完整性没有要求,以 SELECT、INSERT 为主的应用基本都可以使用这个引擎来创建表。

fm(存储表定义)

MYD(MYData,存储数据)

MYI(MYIndex,存储索引)

每个 MyISAM 表都有一个标志,服务器或 myisamchk 程序在检査 MyISAM 数据表时会对这个标志进行设置。MyISAM 表还有一个标志用来表明该数据表在上次使用后是不是被正常的关闭了。

MyISAM 表还支持3种不同的存储格式:

静态(固定长度)表

动态表

压缩表

2.InnoDB存储引擎

InnoDB是一个

InnoDB 是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。

1)更新密集的表:InnoDB 存储引擎特别适合处理多重并发的更新请求。

2)事务:InnoDB 存储引擎是支持事务的标准 MySQL存储引擎。

3)自动灾难恢复:与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。

4)外键约束:MySQL 支持外键的存储引擎只有InnoDB.

5)支持自动增加列 AUTO INCREMENT 届性。

一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB是不错的选择。

3.关于myisam 与 innoDB选择使用

myisam和innoDB是MySQL数据库提供的两种存储引擎。两者的优劣各有千秋。InnoDB会支持一些关系数据库的高级功能。myisam的性能更优,占用的储存空间少。

1.如果应用程序一定要使用事务,毫无疑问要选择InnoDB 引擎。但要注意,InnoDB的行级锁是有条件的。在 where 条件没有使用主键时,照样会锁全表。比如 DELETE FROMmytable 这样的删除语句。

2.如果应用程序对查询性能要求较高,就要使用MYISAM了。MyISAM 索引和数据是分开的,而且其索引是压缩的,可以更好地利用内存。所以它的查询性能明显优于InnoDB.压缩后的索引也能节约一些磁盘空间。

4.修改默认的存储引擎

修改默认的存储引繁有四种方法,分别如下。

(1)通过alter table修改。

复制代码
mysql>alter table user_info engine=myisam;

(2)通过修改my.cnf,指定默认存储引擎并重启服务。

复制代码
vim my.cnf
default-storage-engine=InnoDB

(3)通过create table创建表时指定存储引擎。

复制代码
mysql>create table engineTest(id int) engine=myisam;

(4)通过MySQL_convert_table_format 转化存储引擎。

复制代码
yum -y install perl-DBL perl_DBD-MySQL 
/usr/local/mysql/bin/mysql_convet_table_format
--user=root --password='123456' --sock=/tmp/mysql.sock auth
相关推荐
高梦轩6 分钟前
PG数据库
数据库·oracle
云草桑16 分钟前
DBA mssql 解决排序规则冲突 QA prod 和开发配置都是一样的服务器排序规则 为啥开发环境的的存储过程需要 加这个COLLATE Chinese_PRC_CI_AS
数据库·dba·mssql
卤炖阑尾炎17 分钟前
MySQL 故障排查与生产环境优化实战指南
数据库·mysql
小陈工27 分钟前
2026年4月2日技术资讯洞察:数据库融合革命、端侧AI突破与脑机接口产业化
开发语言·前端·数据库·人工智能·python·安全
solihawk1 小时前
分区大表统计信息不准确引发的性能问题
数据库
一叶飘零_sweeeet1 小时前
击穿 MySQL InnoDB MVCC 底层:从 undo log、Read View 到隔离级别的全链路深度拆解
mysql·innodb·mvcc
百结2141 小时前
postgresql日常运用
数据库·postgresql·oracle
前进的李工2 小时前
MySQL大小写规则与存储引擎详解
开发语言·数据库·sql·mysql·存储引擎
CoovallyAIHub2 小时前
Sensors 2026 | 从无人机拍摄到跑道缺陷地图,机场巡检全流程自动化——Zadar机场全跑道验证
数据库·架构·github
殷紫川2 小时前
MySQL 锁等待与死锁根治全攻略:从底层原理到 innodb status 精准定位实战
mysql