首页 理论教育MySQL数据库设计与实现:十种存储引擎全解析

MySQL数据库设计与实现:十种存储引擎全解析

【摘要】:另外还有其他一些特别用途的表,但重点是: MySQL支持很多类型的表,每种类型都有自己特定的作用、优点和缺点。MySQL还相应地提供了很多不同的存储引擎,可以以最适合于应用需求的方式存储数据。本节介绍MySQL的十种可用的存储引擎,指出每种引擎的作用、优点和缺点。介绍了存储引擎之后,接下来是关于FAQ的一节,讨论关于存储引擎的其他问题。

关系数据库表(table)是用于存储和组织信息的数据结构。可以将表描述为由行(row)和列(column)组成的表格,类似于电子表格(spreadsheet)。例如,可以设计一个用于存储员工联系信息表,该表由五个列组成:员工ID、名、姓、电子邮件地址和电话号码。对于一个有4名员工的公司来讲,这个表将包括4行或4个记录。虽然这个例子相当简化,但它清楚地描述了表的作用:用作一般数据存储的简单访问工具。

不过,数据库表还可以用很多其他方法使用,其中有些方法非常复杂。例如,数据库常用于存储事务信息。简单地定义,如果一组任务共同认为是一项工作,则称为事务(transaction)。如果这些单元任务都成功,则执行对表的修改,或称提交(commit)。如果有任何任务失败,则之前和正在进行的任务的结果都必须取消,或称回滚( roll back)。可以在诸如用户注册、银行操作或电子商务等过程中使用事务,在这些情况下所有步骤都必须正确地完成,以确保数据的一致性。可见,由于必须在表中集成额外的特性,所以这些功能需要一些开销。(www.chuimin.cn)

有些表根本不用来存储任何长期的数据,实际上完全在服务器的RAM或特殊的临时文件中创建和维护,以确保高性能,但同时存在很高的不稳定风险。还有一些表只是为了简化对一组相同表的维护和访问,为同时与所有这些表交互提供一个单一接口。另外还有其他一些特别用途的表,但重点是: MySQL支持很多类型的表,每种类型都有自己特定的作用、优点和缺点。MySQL还相应地提供了很多不同的存储引擎,可以以最适合于应用需求的方式存储数据。本节介绍MySQL的十种可用的存储引擎,指出每种引擎的作用、优点和缺点。这里没有按照字母顺序介绍这些存储引擎,而是先介绍最常用的引擎MyISAM,最后介绍作用更为特定的引擎,这样做似乎更合理:MyISAM、InnoDB、MEMORY、MERGE、FEDERATED、ARCHIVE、CSV、EXAMPLE等。介绍了存储引擎之后,接下来是关于FAQ的一节,讨论关于存储引擎的其他问题。