mysql学习笔记(2):存储引擎

本文详细解析了MySQL中不同存储引擎的功能与特性,包括MyISAM、MEMORY、InnoDB、BDB等,以及它们在数据库操作中的适用场景。通过对比分析,帮助读者选择最适合业务需求的存储引擎。

上节学习了mysql命令行,在添加外键索引的时候涉及到了存储引擎的问题,(只有InnoDB存储引擎才会分析执行添加外键语句,其他存储引擎会忽略),这节就对存储引擎进行分析学习。

什么是存储引擎?

MySQL用各种不同的技术来存储数据到内存或文件中,这些不同的技术使用不同的存储机制,索引技巧,锁定水平并提供不同的功能。这些不同的技术及提供的相关功能在MySQL中称为存储引擎(也称表类型),开发者可以自由选择适合你的服务器,数据库,表结构的存储引擎,这样可以灵活地选择如何存储,检索你的数据信息,这正是MySQL受欢迎的原因。

有哪些存储引擎?

用察看引擎的命令:show engines;

image

该表格显示了可用的全部存储引擎,以及该数据库服务器是否支持这些存储引擎。

MyISAM:(1)MySQL默认的存储引擎,(当然也可以配置为默认其他的存储引擎,如InnoDB,但当不配置时,默认就是MyISM)      (2)  拥有较高的插入,查询速度,                                                                                                                                      (3)不支持事务,                                                                                                                                                            (4)所有MyISAM 表在磁盘上存储成三个文件,一个是.frm文件,存储表的结构;  一个是.MYD数据文件,存储表中的数据;一个是.MYI 索引文件,存储表中的索引,使得备份和恢复非常方便。

      MySQL最大的优势在于MyISAM引擎下的简单SELECT,INSERT和UPDATE快速操作

MEMORY:所有数据置于内存的存储引擎,具有极高的插入,更新,查询速度但会占用跟数据量成正比的内存量,而且数据会在MySQL关闭时丢失。适用于临时数据表

InnoDB:事务型数据库的首选引擎,支持ACID事务,支持行级锁定,和外键,每个InnoDB表对应磁盘中的.frm文件,并没有.MYD数据文件和.MYI索引文件。所以数据恢复比MyISAM要慢。

BDB:BerkeleyDB 事务型数据库的另一选择,支持COMMIT和ROLLBACK等其他事务特性。

BlackHole:黑洞,写入的任何数据都会丢失,一般用于记录binlog做复制的中继

EXAMPLE:是一个‘存根’引擎,它不做什么,你可以用这个引擎创建表,但并不会有数据存于其中,它的目的是服务,只是MySQL存储引擎的一个例子,演示说明如何如何开发存储引擎,有兴趣者可以查看其源代码。

Archive:适合存储大量的,作为历史记录的数据,插入速度非常快,但对查询的支持较差,用来无索引地,非常小地覆盖大量数据

CSV:逻辑上用逗号分隔数据的存储引擎,并存于文本文件

ndbcluster:MySQL Cluster用来实现分割到多个计算机上的表的存储引擎,它在MySQL –MAX 5.1分发版中提供,当前只被linux,Solaris,Mac OS支持。

federated:将不同的mysql服务器联合起来,形成逻辑上的数据库,适合分布式应用

ISAM:是MyISAM出现之前的默认表类型,现在已不推荐使用。MyISAM是以ISAM为基础的,MyISAM表比ISAM表要小

 

以上可以看出,InnoDB和BDB是一类型的,都支持事务,属于事务安全型。其他为非事务安全型。

任何一种表都不是万能的,只有恰当地针对业务类型来选择合适的表类型,才能最大化地发挥MySQL 的性能优势;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值