mysql存储引擎简书_MySQL存储引擎详解

一,基础

1,插件式存储引擎,允许第三方组织,根据其api来设计,很多功能需要依赖引擎支持,比如事务

2, 5.5以后默认为innodb,之前为myISAM,innodb支持事务,myISAM不支持

3,存储引擎是表级别的概念,同一个库不建议多个引擎

二,InnoDB

1,处理大量的短期事务

2,数据存储于"表空间(table space)"中

3,所有InnoDB表的数据放置于同一个表空间中 datadir 下 ibddata(多个)

4,每个表单独使用一个表空间存储表的数据和索引 innodb_file_per_table = ON(3,4建议选择4,建议开启此项)

5,每个表使用单独表空间时,数据文件(数据和索引):tb1_name.ibd

#例如

[root@node1 mysql]# ls mydb/

db.opt t1.frm t1.ibd t2.frm t2.ibd

#frm 表格式定义文件

#ibd 数据文件

6,基于mvcc机制,并发控制,支持较高并发,支持所有的四个事务隔离级别,默认级别为REPEATABLE READ,通过间隙锁仿制幻读的出现

7,使用聚集索引,支持自适应hash索引

8,在MariaDB(XtraDB) 是对于Innodb大量改进后,整合社区的力量,有percona提供,虽然显示为innodb 其实为XtraDB,开源

9,性能:预计操作,自适应hash,插入缓存区

10,备份:支持热备,(xtrabacup)

11,锁粒度:行级别锁

12,崩溃后安全恢复

三,MyISAM

1,支持全文索引(FULLTEXT index),压缩,空间函数,不支持事务

2,锁粒度:表级别锁

3,崩溃后无法安全恢复

4,在mariadb中对其进行改进为Aria,支持崩溃后恢复

5,使用场景:只读(写较少),表较少,可以接受长时候恢复操作

6,文件:.frm 表格式定义,MYD:数据文件,MYI:索引文件

7,支持压缩表

ps:查看表使用的引擎,show status table;

ps:行格式:dynamic,fixed,compressed,compact,redundent

四,其他存储引擎

1,CSV:将普通的CSV(字段通过逗号分隔)作为mysql表使用,方便不同数据库软件中导入导出

2,MRG_MYISAM:将多个MyISAM表合并成一个虚表

3,BLACKHOLE:类似于/dev/null 多级级联复制时有用

4,MEMORY:存内存,适用临时表,中间数据,数据不关键的,支持哈希索引,表级锁,mysql临时表默认为memory,如果临时表空间不够,则会存储在磁盘上,导致性能下降,可以调整临时表空间大小。

5,PERFORMANCE_SCHENA:伪存储引擎,数据为mysql运行产生的数据,如果mysql没开启,此表为空

6,ARCHIVE:只支持select和insert,支持行级锁和专用缓存区,归档可以使用

7,FEDERATED:用于访问其他远程mysql服务器一个代理,他通过创建一个到远程MYSQL服务器的客户端连接,并将查询传输到远程服务器执行,而后完成数据存取,在MariaDB中实现的为FederatedX

五,MariaDB支持的其他存储引擎

1,OQGraph

2,SphinxSE

3,TokuDB

4,Cassandra

5,CONNECT

6,SQUENCE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值