我是靠谱客的博主 满意翅膀,最近开发中收集的这篇文章主要介绍介绍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不同存储引擎或表类型,并介绍创建表时如何指定不同存储类型。

最后

以上就是满意翅膀为你收集整理的介绍MySQL存储引擎及应用的全部内容,希望文章能够帮你解决介绍MySQL存储引擎及应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部