MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的演教命采管陈情周技术,你能够获得额外的速来自度或者功能,从而改善你的应用的整体功能。
- 中文名称 存储引擎
- 内存存储引擎 能够在内存中存储所有表格数据
- 类型 MyISAM InnoDB等
- 优点 灵活
技术介绍
例如,如果你在研究大量的来自临时数据,你也许需要使用内360百科存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务居培界养变处理不成功时数据的回退能力)。
这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作州通兰农李财含唱表类型)。MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表条践此见某最校均群派点格的存储引擎,以便在选择等士管担顾装酸省种如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么活者岩你朝临倒那演标性能和功能的时候为你提供最大的灵活性。
选择如何存储和检索你的数据的这种灵活性是MySQL为什么如此受欢迎的主要原因。其它数据库系统(包括大多数商业选择)仅支持一井种类型的数据存储。遗憾的是,其它类型的数据库解决方案采取的"一个尺码满足一切需求"的方式意味着你要么就牺牲一些性能,要么你就用几个小时甚至几天的时笔目置是口传车销按妈间详细调整你的数据库。使用MySQL,我们仅需要修改我们使用的存储引擎就可以了
分类
MyISAM: 察都挥封越角拥有较高的插入,查询速度,但不支持事务
InnoDB :5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定
BDB: 源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性
Memory :所有数据置于内存的存储引擎,拥有下树东倍两仅极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失
Merge :将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
Archive :非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询烧论波的支持相对较差
Federated: 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用
亮错动委减程紧财 Cluster/NDB :高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和但则气概线深性能要求高的应用
CSV: 逻除进岩断辑上由逗号分割数据的存储引擎。它会在数据库子目录片散顺里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个组境学声向还千居感文本行。CSV存储引擎不支持索引。
BlackHole 适降互粒谈倍信粒:黑洞引擎,写入的任机散何数据都会消失,一般用于记录binlog做复制的例致打管笔中继
另外,Mysql的存储引擎接口定义良好。有兴趣的开发者通过阅读文档编写自己的存储引擎。