介绍MySQL存储引擎及应用

本文介绍MySql几种存储引擎(表类型),即MySql的底层存储特性,利用这些特性可最大化提升数据库性能。

1. 存储引擎

MySql体哦国内下列几种存储引擎:

  • MyISAM
  • InnoDB
  • MERGE
  • MEMORY (HEAP)
  • ARCHIVE
  • CSV
  • FEDERATED

每种类型都有其优劣势。关键需要理解每种存储引擎特性并选择最适合一种创建表以提升数据库性能。下面简要介绍每种存储引擎及其特性,让你能够决定什么场景选择哪种类型引擎。

1.1 MyISAM

MyISAM 扩展之前的 ISAM 存储引擎。MyISAM 表在压缩和速度方便进行了优化,可跨平台和操作系统进行移植。

MyISAM 表最大可达256TB, 非常大。另外MyISAM 表可被压缩为只读表以节省空间。启动时MySQL 检查MyISAM 表问题,甚至能修复一些错误。MyISAM 表不是事务安全的.在 MySQL 5.5版本之前,创建表时的默认存储引擎是 MyISAM 类型 。从5.5版本开始, MySQL 使用 InnoDB 类型作为缺省存储引擎。

1.2 InnoDB

InnoDB表完全支持ACID和事务,它对性能也进行了优化。InnoDB表支持外键,提交、回滚、前滚动操作。InnoDB表大小可达64TB。
与MyISAM一样,InnoDB也能跨平台和操作系统进行移植。如果需要MySql在启动时也检查和修复InnoDB表,

1.3 MERGE

MERGE 表是合并多个类似结构的MyISAM表形成的单个虚拟表,MERGE 存储引擎也称为MRG_MyISAM 引擎。MERGE 表没有自己的索引,其使用其组成表的索引代替。
当连接多个表查询时,使用MERGE 表可以提升性能。MySQL仅允许在MERGE 表上执行 SELECT, DELETE, UPDATE 和 INSERT 操作。如果使用 DROP TABLE 语句删除MERGE 表,仅删除MERGE 规范,底层表不受影响。

1.4 Memory

内存表存储在内存中使用hash索引,因此比 MyISAM 表速度更快。内存表数据的生命周期取决于数据库服务器的正常运行时间 。内存存储引擎以前被称为堆。

1.5 Archive

归档存储引擎允许将大量记录存储为压缩格式以节省磁盘空间。归档存储引擎在插入记录时压缩记录,在读取记录时使用zlib库解压记录。

归档表只允许INSERT 和 SELECT语句。归档表不支持索引,因此读取行需要进行全表扫描。

1.6 CSV

CSV存储引擎以逗号分隔值(CSV)文件格式存储数据。CSV表为将数据迁移到非sql应用程序(如excel软件)提供了一种方便的方法。
CSV表不支持NULL数据类型。此外读操作需要全表扫描。

1.7 FEDERATED

FEDERATED存储引擎允许管理远程MySQL服务器数据,而无需使用集群或复制技术,本地FEDERATED表不存储任何数据。当从本地FEDERATED表查询数据时,数据将自动从远程FEDERATED表提取。

2. 选择存储引擎创建表

上节描述了不同存储引擎,创建表时根据应用场景选择不同存储引擎。创建表的语法如下:

CREATE TABLE [IF NOT EXISTS] table_name(
   column_1_definition,
   column_2_definition,
   ...,
   table_constraints
) ENGINE=storage_engine;

其中ENGINE=storage_engine部分是可选的。我们可以使用上述存储引擎中一种,如果不显示指定,缺省存储引擎为InnoDB 。

总结

本文我们学习MySQL不同存储引擎或表类型,并介绍创建表时如何指定不同存储类型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值