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里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点. 在讲清楚什么是存储引擎之前,我们先来个比喻, ...
随机推荐
- Elasticsearch系列
一.Elasticsearch简介 二.elasticsearch集群监控相关
- HDU 2087 剪花布条 KMP极其初级之入门题(KMP模板在这里)
Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input ...
- tomcat-windows10环境搭建
1.进入Tomcat官网Apache Tomcat® - Welcome! 2.根据操作系统选择合适的版本下载 zip用于windows操作系统, tar.gz用于unix和linux操作系统 Bin ...
- Scala 学习(10)之「集合 」
数组 定长数组 Array:采用()访问,而不是[],下标从 0 开始. val array1 = new Array[String](5) //创建数组 println(array1) //返回数组 ...
- dubbo-admin dubbo-monitor 安装
dubbo-admin: 因为我们不能直观的看到dubbo和zk上到底有什么服务(提供者),所以我们需要一个可视化工具来方便我们管理每一个服务和每一个节点.dubbo-admin 就是dubbo的管理 ...
- 数据库主从监控脚本,数据传到influxdb
#!/bin/bash port=`/usr/sbin/ss -ntlp | | awk '{print $4}' | awk -F":" '{print $2}'` array= ...
- 字符编码及字节串bytes类型
1 字符编码简介 ASCII码:美国人发明并使用,用1个字节(8位二进制)代表一个字符,ASCII码是其他任意编码表的子集(utf-16除外). Unicode:包含和兼容全世界的语言,与全世界的语言 ...
- Spring源码阅读笔记02:IOC基本概念
上篇文章中我们介绍了准备Spring源码阅读环境的两种姿势,接下来,我们就要开始探寻这个著名框架背后的原理.Spring提供的最基本最底层的功能是bean容器,这其实是对IoC思想的应用,在学习Spr ...
- Keras入门(六)模型训练实时可视化
在北京做某个项目的时候,客户要求能够对数据进行训练.预测,同时能导出模型,还有在页面上显示训练的进度.前面的几个要求都不难实现,但在页面上显示训练进度当时笔者并没有实现. 本文将会分享如何在K ...
- generator 和 co模块
// 类数组的生成器 // 类数组的生成器 function fns() { let obj = {0:1,1:2,2:3,length: 3}, [Symbol.iterator]: functio ...