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

本文详细介绍了MySQL的两种主要存储引擎InnoDB和MyISAM。InnoDB作为默认引擎,支持事务处理和行级锁,适合处理大量事务;而MyISAM提供全文索引等特性,但不支持事务。InnoDB利用MVCC实现高并发,并通过聚集索引提高查询性能。MyISAM则存储在两个文件中,读操作时整表加锁。了解这些特性有助于选择合适的存储引擎。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值