Linux中MySQL数据库的使用⑥-----存储引擎

存储引擎

一、 查看当前的存储引擎

show variables like '%storage_engine';
show engines;

二、 MySQL常用的存储引擎

功能MYISAMMemoryInnoDBArchive
存储限制256TBRAM64TBNone
支持事务NoNoYesNo
支持全文索引YesNoNoNo
支持数索引YesYesYesNo
支持哈希索引NoYesNoNo
支持数据缓存NoN/AYesNo
支持外键NoNoYesNo

1.InnoDB
事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,InnoDB是默认的MySQL引擎。
2.MyISAM
MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有极高的插入、查询速度,但不支持事务。
3.MEMORY
MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。
存储引擎的选择
对插入和并发性能要求较高的,或者需要外键,或者需要事务支持的情况下,需要选择InnoDB。插入较少,查询较多的场景,优先考虑MyISAM。

三、 使用引擎
一般在建表时添加

create table test(
    name varchar(10)
)engine=MyISAM charset=utf8;

create table test_1(
    name varchar(10)
)engine=InnoDB charset=utf8;

四、 InnoDB和MyISAM的文件方面的区别
1.InnoDB将一张表存储为两个文件

  • demo.frm -> 存储表的结构和索引
  • demo.ibd -> 存储数据。ibd存储是有限的,存储不足自动创建ibd1,ibd2
    InnoDB的文件创建在对应的数据库中,不能任意的移动

2.MyISAM将一张表存储为三个文件

  • demo.frm -> 存储表的结构
  • demo.MYD -> 存储数据
  • demo.MYI -> 存储表的索引
    MyISAM的文件可以任意的移动

版权声明:本文为weixin_43670190原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。