mysql引擎介绍
mysql存储引擎介绍:
- 插拔式的插件方式
- 存储引擎是指定在表上的,即一个库中的每一个表都可以指定专用的存储引擎
- 不管采用什么样的存储引擎,都会在数据区产生对应的一个frm文件(表结构定义描述文件)
我们都知道mysql有很多引擎比如:CSV存储引擎,Archive引擎,Memory存储引擎,MyISAM存储引擎,InnoDB存储引擎等很多引擎。今天我们主要看一下上面几个引擎。
CSV存储引擎
数据存以CSV文件
特点:
- 不能定义索引,列定义必须为NOT NULL,不能设置自增列
- CSV数据的存储用‘,’隔开,可以直接编辑CSV文件进行数据的编排(编排后要生效使用flush table **命令)
通过上面的特点可以看出: CSV存储引擎不适合大表或则数据在线处理,而且安全性低。 CSV存储引擎的应用场景为数据的快速导入导出,表格直接转换为CSV等场景。
Archive引擎
压缩协议进行数据的存储,数据存储为ARZ文件格式
特点:
- 只支持insert和select两种操作
- 只允许自增ID列建立索引
- 行级锁
- 不支持事务
- 数据占用磁盘少
适用场景:日志系统,大量的设备数据采集
Memory引擎
数据都是存在内存中,IO效率比其他引擎高,但是服务重启后数据会丢失,数据表默认只有16M
特点
- 支持hash,B TREE索引,默认为hash索引
- 字段长度是固定长度char(32)
- 不支持大数据存储类型字段如blog,text等
- 表级锁
应用场景:
- 等值查找数据。
- 查询结果在内存中计算的大多数采用这种存储引擎作为临时表存储需要计算的数据。
####Myisam Mysql5.5版本之前的默认存储引擎
特点
- select count(*) from aaa;无需进行数据扫描
- 数据和索引分开存储
- 表级锁
- 不支持事务
Innodb
Mysql5.5版本之后的默认存储引擎
特点
- 支持事务
- 行级锁定(更新时一般是锁定当前行):通过索引实现,全表扫描仍然会是锁定整个表,注意间隙锁的影响.
- 读写阻塞与事务隔离级别相关.
- 具有非常高效的缓存特性,能缓存索引,也能缓存数据.
- 聚集索引方式进行数据存储
- 所有Secondary Index 都会保存主键信息.
- 和MyISAM相比,InnoDB对于硬件资源要求比较高.
应用场景:
- 需要支持事务的业务
- 行级锁定对于高并发有很好的适应能力,但是需要保证查询是通过索引完成.
- 数据读写及更新都比较频繁的场景.
- 数据一致性要求很高的业务
- 硬件设备内存较大,可以很好利用InnoDB较好的缓存能力来提高内存利用率,尽可能减少磁盘IO的开销.
下面来看看上面几种引擎的对比
Feature | Myisam | Memory | Innodb | Archive |
---|---|---|---|---|
B+ Tree | yes | yes | yes | no |
clustered indexes | no | no | yes | no |
compressed data | yes(note2) | no | yes | yes |
data caches | no | no | yes | no |
foreign key support | no | no | yes | no |
geospatial data type support | yes | no | yes | yes |
geospatial indexing support | yes | no | yes(note 6) | no |
hash indexes | no | yes | no(note 7) | no |
index caches | yes | yes | yes | no |
locking granularity | tabl | table | row | row |
MVCC | no | no | yes | no |
REPLICATION SUPPORT(NOTE 1) | yes | limit(note8) | yes | yes |
STORAGE LIMITS | 256TB | RAM | 64TB | None |
Transactions | no | no | yes | no |
mysql引擎介绍的更多相关文章
- MySQL引擎介绍ISAM,MyISAM,HEAP,InnoDB
MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL. 在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型IN ...
- MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
本篇文章是对MySQL数据库引擎介绍.区别.创建和性能测试进行了详细的分析介绍,需要的朋友参考下 数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎 ...
- [转]MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
本篇文章是对MySQL数据库引擎介绍.区别.创建和性能测试进行了详细的分析介绍,需要的朋友参考下 数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎 ...
- MySQL · 引擎特性 · InnoDB 事务子系统介绍
http://mysql.taobao.org/monthly/2015/12/01/ 前言 在前面几期关于 InnoDB Redo 和 Undo 实现的铺垫后,本节我们从上层的角度来阐述 InnoD ...
- MySQL数据库引擎介绍、区别
数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另 ...
- 数据库 --> MySQL存储引擎介绍
MySQL存储引擎介绍 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然 ...
- Mysql数据库引擎介绍--转载
引用博文链接:https:/www.cnblogs.com/zhangjinghe/p/7599988.html MYSQL数据库引擎区别详解 数据库引擎介绍 MySQL数据库引擎取决于MySQL在安 ...
- {MySQL存储引擎介绍}一 存储引擎解释 二 MySQL存储引擎分类 三 不同存储引擎的使用
MySQL存储引擎介绍 MySQL之存储引擎 本节目录 一 存储引擎解释 二 MySQL存储引擎分类 三 不同存储引擎的使用 一 存储引擎解释 首先确定一点,存储引擎的概念是MySQL里面才有的,不是 ...
- mysql 存储引擎介绍
一 存储引擎解释 首先确定一点,存储引擎的概念是MySQL里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点. 在讲清楚什么是存储引擎之前,我们先来个比喻, ...
随机推荐
- 关于使用详解ASP.NET State Service
ASP.NET State Service服务如果启动可以解决这个问题,它会生成一个aspnet_state.exe进程,这个就是Session信息的进程.只要这个进程在,就算是重启了IIS,站点的S ...
- ARTS Week 2
Nov 4,2019 ~ Nov 10,2019 Algorithm 本周主要的算法是如何求两个数的最大公因数.传统的想法便是对这两个数分解质因数,而后找到其公共因数,再相乘,这样就会得到最大公因数了 ...
- vue hash模式下微信分享后打开首页,三种完美解决方案
微信分享功能给我们带来了很大的便利,使得基于微信开发出来的 H5 页面可以很好的通过微信平台进行传播.所以呢,基本上每个基于微信开发的 H5 都会集成微信分享功能.但是,前几天在对接微信分享 API ...
- javascript 完全正确的数据库indexedDB
//indexedDB var dbName = 'whx', version = '1', dbTableName = 'bbg', request, db, conCls, updateKey, ...
- Fastjson <=1.2.62 远程代码执行-漏洞复现
影响范围: Fastjson<=1.2.62 需要开启autotype poc: String text1 = "{\"@type\":\"org.apa ...
- Docker / Kubernetes 镜像源
由于众所周知的原因, Docker 官方镜像仓库和 Google 镜像仓库在国内访问速度很慢或者不可用.这样就给我们在部署和使用 Kubernetes 时带来了极大的不便.今天我们就来介绍几种方法,可 ...
- 杭电-------2055An Easy Problem(C语言)
#include<stdio.h> int main() { int m; int i; scanf("%d", &m); ]; int y; int z; ; ...
- spring cloud微服务快速教程之(十一) Sleuth(zipkin) 服务链路追踪
0.前言 微服务架构上众多微服务通过REST调用,可能需要很多个服务协同才能完成一个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败.随着业务的不断扩张,服务之间互相调用 ...
- Windows环境下Nginx配置本地虚拟域名
进入conf文件夹,新建servers文件夹: 将内部的server配置段提取单独放在一个文件里,存到了conf/servers下,以方便配置多个虚拟主机. 并在nginx.conf里http配置段内 ...
- 记录KVM虚拟机常用操作管理命令
环境说明 centos7中的KVM NAT方式是kvm安装后的默认方式.它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机. 检查当前的网络设置 # virsh net-li ...