MySql教程

mysql总结(一)

本文主要是介绍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)
响应时间或者延迟
并发性
可扩展性

这篇关于mysql总结(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!