mysql总结(一)

mysql数据库引擎

1. Archive引擎
只支持Insert和select操作,5.1之前不支持索引,缓存所有的写并利用zlib对插入的进行压缩,myIsam表磁盘I/O更少。查全表扫描;适合日志和数据采集应用,做数据分析进行全表扫描。或者更快的Insert场景下使用。
支持行级锁和专用的缓冲区,可实现高并发插入。在一个查询开始到结束之间,Archive引擎回阻止其他select执行,一致性读。批量插入之前对读的操作时不可见的。这种机制模仿了事务和MVCC特性。不是一个事务性引擎,是一个针对高速插入和压缩做了优化的引擎。
2. Blackhole引擎
无存储机制,删插入数据,不保存。服务器记录Blackhole表,做数据复制到备库,或者记录日志。复制架构和日志审核时发挥作用,使用时会出现很多问题,不推荐使用。
3. csv引擎
可以将csv文件当作普通表处理,不支持索引。数据库运行时可以进行拷入或拷出。可以作为书交换的机制。
4.Federrated引擎
访问mysql服务器的一个代理
5.Memory引擎
特性:快速的访问数据,数据不会被修改,重启数据不丢失(以前叫heap表),支持Hash索引
缺点:表级锁,并发写入性能低,不支持BLOB和TEXT类型的列,每行长度固定。
比myisam快一个数量级,数据保存内存中,不进行磁盘io
使用场景:

  1. 查找或映射表
  2. 周期性聚合数据的结果
  3. 保存数据分析中产生的中间数据

mysql查询过程中用临时表保存中间结果,内部使用的临时表就是Memory表,中间结果集太大Memory表将转MyIsam表。
6. Merge引擎

MyIsam的一个变种,有多个MyIsam表合并的虚拟表,可以做日志或者数据仓库类应用,引入分区后该引擎放弃了。
7.NDB集群引擎
sql和ndb原生协议之间的接口。

第三方存储引擎

OLTP类引擎
Percona的XtraDB基于InnoDB改进版本,改进点:性能、可测量性和操作灵活性方面XtraDB可以作为InnoDB的完全替代品,兼容InnoDB的读写(数据文件),支持InnoDB的所有查询。

TokuDB引用了分形树的索引数据结构,该结构与缓存无关,大小超过内存性能也不会降低,无内存生命周期和碎片问题。是一种大数据存储引擎,有很高的压缩比,可在很大的数据量上建立索引。

选择适合的引擎:
除非InnoDB不具备的特性,并无其它办法,否则只能InnoDB

如果要用全文索引,建议先考虑InnoDB加上Sphinx组合,而不是直接选择MyIsam,不在乎可扩展能力和并发,和崩溃数据丢失,对innodb占用内存特别敏感,就选择MyIsam。

选择引擎需考虑的因素:

事务
备份
崩溃恢复
特有特性

测试的指标
吞吐量(tps/tpm)
响应时间或者延迟
并发性
可扩展性

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值