(十一)MySQL存储引擎


1、存储引擎简介

  MySQL可以将数据以不同的技术存储在文件(内存)中,该技术就被称为存储引擎。每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。对于关系型数据库而言,数据都是以数据表的形式存储的,因此存储引擎也可以理解为是表类型。

  例如:

  查看数据表“test”的建表结构:


  其中“ENGING = InnoDB”即为本节要讲述的存储引擎。而MySQL支持的常见存储引擎有如下几种:
  MyISAM、InnoDB、Memory、CSV、Archive

在介绍各个存储引擎的特点之前,先来了解几个相关知识点:


2、存储引擎的特点

特点 MyISAM InnoDB Memory Archive
存储限制 64TB
事务安全 - 支持 - -
支持索引 支持 支持 支持
锁粒度 表锁 行锁 表锁 行锁
数据压缩 支持 - - 支持
支持外键 - 支持 - -


MyISAM:拥有较高的插入,查询速度,但不支持事务,是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一;

InnoDB :事务型数据库的首选引擎,提供了具有提交、回滚和崩溃恢复能力的事务安全,支持ACID事务,支持行级锁定;

Memory:将所有数据保存在内存中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问,但如果数据库重启或崩溃,数据会丢失,因此只适合存储临时数据;

Archive:适合存储归档数据,如日志信息。它只支持INSERT和SELECT操作,其设计的主要目的是提供高速的插入和压缩功能;

CSV: 逻辑上由逗号分割数据的存储引擎,它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。可以将Excel的数据存储为CSV格式文件,再复制到MySQL的数据目录下,就能在MySQL中以表的方式打开,因此适合作为一种数据交换机制。


3、修改存储引擎

  • 修改MySQL配置文件
  • 创建数据表时指定


  • 修改数据表的存储引擎



版权声明:欢迎转载,欢迎扩散,但转载时请标明作者以及原文出处,谢谢合作!             ↓↓↓

推荐阅读更多精彩内容