打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MySQL架构介绍(5.存储引擎)

MySQL内建主流存储引擎主要死InnoDB和MyISAM

1)InnoDB

MySQL默认的事务型存储引擎,当前互联网行业MySQL数据库的主流选择,主要用来处理大量短期事务,大部分正常提交,很少部分回滚。

数据存储在表空间中,由一系列数据文件组成。MySQL4.1版本后,每个表数据和索引存储在单独文件中。

InnoDB采用MVCC机制支持高并发事务处理,并且实现了四个标准隔离级别。默认repeatable read可重复读,通过间隙锁策略防止幻读出现。间隙锁使得InnoDB锁定查询行和索引间隙,以防止幻读行插入。

InnoDB基于聚集索引建立,聚集索引对主键查询性能高。二级索引中必须包含主键列,若是主键列很大,则其他所有的索引都会很大。因此,若表上的索引很多的话,主键索引尽可能设计小一些。

InnoDB性能高效,主要是从磁盘读数据时采用可预测读,在内存中自动创建hash索引以加速读操作的自适应。详见官方手册“InnoDB事务模型和锁”。

通过一些诸如XtraBackup工具InnoDB可以做到热备份,但其他存储引擎都无法热备。

2)MyISAM

MyISAM5.1版本前是默认存储引擎。MyISAM提供了大量特性,包括全文索引、压缩、空间函数等,但不支持事务和行级锁,这就导致一旦挂掉后无法安全恢复。

存储:

MyISAM会存储两个文件:数据文件和索引文件,分别以.myd和.myi为扩展名。表包括静态行和动态行。MySQL会根据表的定义来决定采用何种格式。MyISAM表可以存储记录行数,一般受限于可用磁盘空间,或者操作系统中单个文件的最大尺寸。

特性:

加锁并发,整张表加锁非行锁。读操作对所读表加共享锁,写操作对所有表加排他锁。但读操作时可以并发插入。

修复,可以手工或自动执行检查修复,但修复过程中可能会丢失数据且操作慢。

检查指令:check table 表名

修复指令:repair table 表名

索引特性,可以创建索引,支持全文索引。

3)其他存储引擎

除了上述MySQL内建存储引擎外,MySQL还支持其他存储引擎,如:archive、blackhole、csv、federated和memory等。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
各种存储引擎的特性
什么是InnoDB
Mysql 中 MyISAM 和 InnoDB 的区别有哪些?
Mysql存储引擎详解(MyISAM与InnoDB的区别)(转)
Mysql 两大常用的存储引擎MyISAM,InnoDB的六大常见区别
教你如何利用MySQL学习MongoDB之数据存储结构
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服