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

   2023-03-09 09:40:06 7530
核心提示:MySQL内建主流存储引擎主要死InnoDB和MyISAM1)InnoDBMySQL默认得事务型存储引擎,当前互联网行业MySQL数据库得主流选择,主要用

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等。

 
举报收藏 0打赏 0评论 0
 
更多>同类百科头条
推荐图文
推荐百科头条
最新发布
点击排行
推荐产品
网站首页  |  公司简介  |  意见建议  |  法律申明  |  隐私政策  |  广告投放  |  如何免费信息发布?  |  如何开通福步贸易网VIP?  |  VIP会员能享受到什么服务?  |  怎样让客户第一时间找到您的商铺?  |  如何推荐产品到自己商铺的首页?  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备15082249号-2