三种存储引擎及其特点

本文详细介绍了MySQL中InnoDB、MyISAM和MEMORY三种存储引擎的特点,包括事务支持、锁定机制、外键约束等,并根据不同的应用场景推荐了各自的适用性。
摘要由CSDN通过智能技术生成

创建表时如何指定存储引擎

1,MyISAM引擎

create table [if not exists] my_myisam(

        id int,

        name varchar(10)

) engine = MyISAM;

2,MEMORY引擎

create table my_memory(

        id int,

        name varchar(10)

) engine = MEMORY;

三种存储引擎的特点


InnoDB:高可靠性,高性能

InnoDB:1,事务;2,行级锁;3,外键约束

InnoDB的表都有对应的.idb文件(表空间文件)用来存储数据,索引,表结构

一个变量:innodb_file_per_table (8.0以上版本是开着的,意味着每张表对应一个表空间文件)

show variables like 'innodb_file_per_table';

InnoDB的逻辑存储结构是:表空间,段,区(大小固定为1M,包含64页),页(16k),行

在众多的引擎中只有InnoDB支持事务


MyISAM最初版本的mysql使用的存储引擎

特点:1,支持表级锁;2,存储速度快;3,不支持事务;4不支持外键

包含三个文件:1,.sdi(存储表结构);.MYD(存储数据);3,.MYI(存储索引)

需要较多的插入数据时,选用MyISAM


MEMORY存储引擎

存储于内存中,速度快;只有一个文件:.sdi(存储表结构);用于存储临时表;断电数据会丢失;支持哈希索引。

最大的特点就是速度快;由于存储在内存中,假若存储几个G的数据,代价很大


使用场景选择

绝大多数的使用场景都是用的InnoDB,需要使用MyISAM,MEMORY时,有其他的更好的选择(NoSQL)

在应用中如果对事务的完整性要求比较高,在并发的条件下要求数据的一致性,数据操作除了插入,查询,还包括更新删除,InnoDB比较合适。

应用中较多的是读和插入操作,很少使用更新删除,对事务的并发性,完整性要求不高则选MyISAM比较合适。

MEMORY:数据存储在内存中,由于速度比较快,多用于临时表缓存。缺点:对表的大小有限制,太大的表无法缓存在内存中;无法保证数据的安全性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值