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里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点. 在讲清楚什么是存储引擎之前,我们先来个比喻, ...
随机推荐
- C# WinForm 使用SMS接口发送手机验证码+图形验证码+IP限制
https://blog.csdn.net/IT_xiao_guang_guang/article/details/104299983 前言 1.发送手机验证码用的是网建的SMS接口(http:/ ...
- CCF_ 201509-2_日期计算
水. #include<iostream> #include<cstdio> using namespace std; ] = {{,,,,,,,,,,,,},{,,,,,,, ...
- 关于SQL Server 2012 手动安装帮助文档
大家以为安装帮助文档很简单,但是其实不然,这其中还有那么一点点道道.今天我就来给大家演示一下! 首先到microsoft官网上下载Microsoft SQL Server 2012 产品文档,然后将. ...
- Codeforces 1304E 1-Trees and Queries (树上距离+思维)(翻译向)
题意 给你一棵树,q个询问(x,y,a,b,k),每次问你如果在(x,y)加一条边,那么a到b能不能走k步,同一个点可以走多次 思路(翻译题解) 对于一条a到b的最短路径x,可以通过左右横跳的方法把他 ...
- 【题解】P3373 【模板】线段树 2
线段树解法 好丢脸,这个题做了一下午,调试了三个多小时...... 先讲讲解题思路 既然这里是线段树,就要用到lazy-tag.又有加法又有乘法的话,就要用到两个lazy-tag,分别用数组jia[] ...
- 必知必会之Lambda表达式
Java是一门强大的面向对象的语言,除了8种基本的数据类型,其他一切皆为对象.因此,在Java中定义函数或方法都离不开对象,也就意味着很难直接将方法或函数像参数一样传递,而Java8中的Lambda表 ...
- 苹果系统iOS、macOS应用管理机制
iOS.macOS系统应用管理机制 苹果系统包括:iOS.macOS.watchOS.tvOS.应用软件的生命周期为:开发.上线.安装.使用.卸载.这篇文档将从应用生命周期的各个环节介绍苹果系统对应用 ...
- [redis读书笔记] 第二部分 单机数据库 RDB持久化
内存中的rdb是会存为文件以做到RDB持久化的.RDB文件时一个二进制文件. 一 载入与存储 文件的载入是在server启动时进行的(rdbload()),因为AOF的更新频率比RDB高,所以如果AO ...
- javascript Math对象 常用数字操作方法
var t='1.2'; parseInt(t) parseFloat(t)//1.2 Number(1.2)//1.2强制转换为数字 2.向上取整,有小数就整数部分加1 js: Math.ceil( ...
- jquery + ajax 提交数据报错
报错 Forbidden (CSRF token missing or incorrect.): /account/test/ [20/Oct/2016 18:10:44] "POST /a ...