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里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点. 在讲清楚什么是存储引擎之前,我们先来个比喻, ...
随机推荐
- POJ_1006_中国剩余
http://poj.org/problem?id=1006 中国剩余定理用来解求模方程组,用到了逆元. 这题三个数互质,直接用扩展欧几里德可得逆元. #include<iostream> ...
- 用pyinstaller打包时的图标问题
前言 因为昨天重新研究了下python的打包方法,今天一番准备把之前写的一个pdf合并软件重新整理一下,打包出来. 但在打包的过程中仍然遇到了一些问题,半年前一番做打包的时候也遇到了一些问题,现在来看 ...
- 《Head first设计模式》之抽象工厂
抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类. 确保原料的一致 披萨店成功的关键在于新鲜.高质量的原料.要如何确保每家加盟店使用高质量的原料?你打算建造一家生成原料的 ...
- C#在窗体中按下鼠标键拖动窗体
[DllImport("user32.dll")]//拖动无窗体的控件 public static extern bool ReleaseCapture(); [DllImport ...
- springboot 日志 logback输出
1.首先在 application,yaml中添加 logging: config: classpath:logback-spring.xml 2.之后在resources中添加 logback-sp ...
- mysql ---- Host '' is not allowed to connect to this MySQL server
mysql>use mysql mysql>update user set host= '%' where user = 'root'; 此时如果提示报错,不用管,继续往下走 select ...
- Django (一) 基础
创建项目 创建app python manager.py startapp app01 修改.添加url from django.conf.urls import url,include fr ...
- 寒假答辩作品——掘地求升C语言版
寒假答辩—掘地求升(C语言版) 前言 这个是作为寒假答辩作品写的. 之前考虑过用Unity写个游戏,但毕竟不熟悉C#,感觉几乎都是在套模板,而且写着不顺手,有想法却只能 看着C#发呆,很是无奈,所以决 ...
- 使用C#的计时器加观察者模式完成报警推送需求
前言 这两天面试了一个物联网公司高级研发,面试题是下面这样子 公司领导,部门主管,小组组长,组成员4级,假如有个 疫情预警,先通知组人员(对个人,主要有一个处理就算处理了) 如果3分钟没处理,就往组长 ...
- python3-cookbook笔记:第八章 类与对象
python3-cookbook中每个小节以问题.解决方案和讨论三个部分探讨了Python3在某类问题中的最优解决方式,或者说是探讨Python3本身的数据结构.函数.类等特性在某类问题上如何更好地使 ...