博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql常见存储引擎简介
阅读量:4070 次
发布时间:2019-05-25

本文共 1009 字,大约阅读时间需要 3 分钟。

Mysql中用的最多的两种存储引擎就是MyISAM和InnDB,其中MyISAM是5.1版本之前的默认存储引擎,InnoDB是5.1版本之后的默认存储引擎。另外常见的存储引擎还有MEMORY、MERGE、NDB等。下面我们简单看一下她们的各有什么特点。

一、MyISAM

MyISAM的特点是查询速度快、存储空间小,原因是在磁盘上分成三个文件存储:.frm(存储表定义),.MYD(MYData,存储数据),.MYI(MYIndex,存储索引),SELECT COUNT(*) FROM TABLE时,避免了全表扫描。

但是MyISAM不支持事务,也不支持外键,写入时是表锁,所以适合查询多、写入少的业务场景。

二、InnoDB

InnoDB,最大的特点就是支持事务和行锁,是现在Mysql的默认存储引擎。对事务和写并发的支持使InnDB成为互联网公司最常使用的存储引擎。

1、事务

支持ACID的事务,支持事务的四种隔离级别。

2、行锁

支持行级锁及外键约束,所以在可以支持写并发。

3、全表扫描

SELECT COUNT(*) FROM TABLE时会进行全表扫描,效率低于MyISAM。

三、MEMORY

MEMORY是一种特殊的存储引擎,特点是使用存储在内存中的内容来创建表,并且数据全部放在内存中。每个基于MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型。该文件中只存储表的结构,而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率。需要注意的是,服务器需要有足够的内存来维持MEMORY存储引擎的表的使用。如果不需要了,可以释放内存,甚至删除不需要的表。

MEMORY默认使用哈希索引,速度比使用B树索引快。当然如果你想用B型树索引,可以在创建索引时指定。注意,MEMORY用到的很少,因为它是把数据存到内存中,如果内存出现异常就会影响数据。如果重启或者关机,所有数据都会消失。因此,基于MEMORY的表的生命周期很短,一般是一次性的。

综上,我们可以看出这三种存储引擎的特点。

1、InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。

2、MyISAM:占用空间小,查询速度快。缺点是不支持事务的完整性和并发性。

3、MEMORY:所有的数据都在内存中,处理速度快,但是安全性不高。对表的大小有要求,依赖内存,不能建立太大的表。

转载地址:http://cylji.baihongyu.com/

你可能感兴趣的文章
字符串的截取
查看>>
2. Add Two Numbers
查看>>
17. Letter Combinations of a Phone Number (DFS, String)
查看>>
93. Restore IP Addresses (DFS, String)
查看>>
19. Remove Nth Node From End of List (双指针)
查看>>
49. Group Anagrams (String, Map)
查看>>
139. Word Break (DP)
查看>>
23. Merge k Sorted Lists (Divide and conquer, Linked List) 以及java匿名内部类
查看>>
Tensorflow入门资料
查看>>
剑指_用两个栈实现队列
查看>>
剑指_顺时针打印矩阵
查看>>
剑指_栈的压入弹出序列
查看>>
剑指_复杂链表的复制
查看>>
服务器普通用户(非管理员账户)在自己目录下安装TensorFlow
查看>>
星环后台研发实习面经
查看>>
大数相乘不能用自带大数类型
查看>>
字节跳动后端开发一面
查看>>
CentOS Tensorflow 基础环境配置
查看>>
centOS7安装FTP
查看>>
FTP的命令
查看>>