【MYSQL】存储引擎

1、InnoDB存储引擎

  InnoDB是MySQL的默认事务型引擎,也是最重要最广泛的存储引擎。被设计用来处理大量的短期(short-lived)事务,大部分短期事务正常提交,很少被回滚。InnoDB的性能和自动崩溃恢复特性,在非事务型存储需求中也很流行。InnoDB的数据存储在表空间(tablespace)中,表空间是InnoDB管理的黑盒子,有一系列数据文件组成。
  采用MVCC来支持高并发,实现了四个标准的隔离级别。默认是REPEATABLE READ(可重复读),并且通过间隙锁(next-key locking)策略防止幻读的出现。间隙锁使InnoDB不仅仅锁定查询设计的行,还会对索引中的间隙进行锁定,防止幻影行的插入
  InnoDB表示基于聚簇索引建立的。聚簇索引对主键查询有很高的性能,但二级索引(secondary index,非主键索引)中必须包含主键列,所以如果主键列很大的话,其他的所有索引都会很大。所以索引较多的话,主键应当尽可能小。
  InnoDB通过一些机制和工具支持真正的热备份,其他存储引擎不支持热备份。

2、MyISAM存储引擎

  MySQL5.1之前的默认存储引擎。对只读的数据、或者表比较小、可以忍受修复操作,依然可以继续。缺点:不支持事务和行级锁,还有最大的缺陷是崩溃后无法安全恢复。
  MyISAM会将表存储在两个文件中:数据文件和索引文件,分别以.MYD和.MYI为扩展名。表的存储行数一半首先于可用的磁盘空间或者单个文件的最大尺寸。
MyISAM对整张表加锁,而不是针对行。读取时会对读到的所有表加共享锁,写入时加排他锁。在读取查询时也可以插入新纪录(并发插入,CONCURRENT INSERT)。
索引特性:即使是BLOB和TEXT等长字段,也可以基于前500个字符创建索引,并支持全文索引。
MyISAM表可以先把索引写在键缓冲区(in-memory key buffer),清理或者关闭时才会将对应索引块写入磁盘,几大提升写入性能。崩溃时会导致索引损坏,需要执行修复操作。可以全局也可以单个表。
  MyISAM表可以使用myisampack对表进行压缩。压缩表不能修改(除非解压缩,修改,再压缩)。压缩表几大减少空间占用,减少磁盘I/O,提升查询性能。支持索引,索引也只读。压缩时表的记录是独立压缩的,读取单行时不需要解压整个表甚至页面。
  MyISAM存储引擎设计简单,数据以紧密格式存数,所以某些场景下性能很好。最典型的性能问题是表说问题

3、MySQL内建其他存储引擎

1、Archive引擎。

  只支持INSERT和SELECT操作,MySQL5.1之前也不支持索引。会缓存所有的写并利用zlib对插入的行进行压缩,所以比MyISAM表的磁盘I/O更少。但每次查询都需要全表扫描,所以适合日志和数据采集类应用,或者一些需要快速插入的场合。
  支持行级锁和专用缓冲区,所以可以高并发的插入。查询结束前会组织其他查询,以保证一致性读。批量插入完成前对读操作不可见

2、CSV引擎

  可以将普通的CSV文件(逗号分割值的文件)作为MySQL的表来处理。不支持索引。可以作为一种数据交换的机制

3、Blackhole引擎

  没有实现任何存储机制,会丢弃所有插入的数据,但服务器会记录blackhole表的日志。
可以用于复制数据到备库,或者简单的记录到日志。

4、Federated引擎

  访问其他MySQL服务器的代理,会创建一个客户端连接,并将查询传输到远程服务器执行,然后提取或者发送需要的数据。(问题较多,默认禁用)

5、Memory引擎

内存引擎。重启后结构保留,数据会丢失。一般用于查找或映射表、缓存周期性或中间数据。支持Hash索引。不支持BLOB或TEXT列。每行定长,指定varchar也会转换成char,导致部分内存浪费

6、Merge引擎

  MyISAM引擎的变种。Merge表是由多个MyISAM表合并而来的虚拟表。(已弃用)

7、NDB集群引擎

4、第三方存储引擎

  提供了插件式的存储引擎API,所以出现一些为不同目的而设计的存储引擎。

-------------------------------------高性能MySQL笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值