mysql 存储引擎对比

mysql 存储引擎:存储引擎也通常被称作“表类型”

修改原始hellodb.sql存储引擎为InnoDB

 sed -i ‘[email protected][email protected][email protected]‘ /home/hellodb.sql

导入修改后的sql文件

 mysql -uroot -p  mydb < /home/hellodb.sql

查看表引擎,状态

 mysql> show engines;
   mysql> show table status;
   show table status in hellodb \G
   mysql> show table status in hellodb where name =‘classes‘\G

Name 表名

Engine 存储引擎

Version:版本

Row_format:行格式

{DEFAULT|DYNAMIC|FIXED|COMMPRESSED|REDUNDANT|COMPACT}

Rows:表中的行数

Avg_row_length:平均每行包含的字节数

Data_length:表中数据总体大小,单位为字节

Max_data_length:表能够占用的最大空间,单位为字节,0表示么有上限

Index_length:索引的大小,单位为字节

Data_free:对于MyISAM表,表示已经分配但尚未使用的空间,其中包含此前删除行之后腾出来的空间

Auto_increment:下一个AUTO_INCREMENT的值

Create_time:表的创建时间

Update_time: 表数据的最后一次修改时间

Check_time: 使用CHECK TABLE或myisamchk最近一次检查表的时间

Collation:排序规则

Checksum:如果启动,则为表的checksum

Create_options:创建表时指定使用的其他选项

Comment:表的注释信息

SHOW TABLE STATUS [{FROM | IN} db_name]

[LIKE ‘pattern‘ | WHERE expr]

InnoDB

两种格式:

1.innodb_file_per_table=OFF,即是用共享表空间

每个表一个独有的格式定义文件:tb_name.frm

还有一个默认位于数据目录下的共享的表空间文件:ibdata#

2.innodb_file_per_table=ON,即是用独立表空间

每个表在数据库目录下存储两个文件

tb_name.frm

tb_name.ibd

MyISAM:

每个表都在数据库目录下存储三个文件

tb_name.frm

tb_name.MYD

tb_name.MYI

表空间: table space ,由InnoDB管理的特有格式数据文件,内部可同时存储数据和索引

如何修改默认存储引擎:通过default_storage_engine服务变量实现

各存储引擎的特性:

InnoDB:

支持事务,有事务日志

ib_logfile0

ib_logfile1

支持外键约束

支持MVCC(多版本并发控制)

支持聚簇索引

聚簇索引之外的其他索引,通常称之为辅助索引

行级锁:间隙锁

支持使用辅助索引

支持自使用hash索引

支持热备份

MyISAM:

全文索引

支持表压缩存放:做数据仓库,能节约存储空间并提升性能

支持空间索引

表级锁

延迟更新索引

不支持事务、外键和行级锁

崩溃后无法安全恢复数据

使用场景:只读数据,表较小,能够忍受崩溃后的修复操作和数据丢失

show table status in mysql\G

mysql 自带的表使用MyISAM

ARCHIVE

仅支持INSERT和SELECT,支持很好压缩功能

应用于存储日志信息,或其他按照时间序列实现的数据采集类的应用

CSV:

将数据存储为CSV格式,不支持索引,仅使用与数据交换场景

BLACKHOLE:

没有存储机制,任何发往次引擎的数据都会丢弃,其会记录二进制日志,因此,常用于多级复制架构中作中转服务器

MEMORY:

保存数据在内存中,内存表;常用于保存中间数据,如周期性的聚合数据等,也用于实现临时表

支持hash索引,使用表级锁,不支持BLOB和TEXT数据类型

MRG_MYISAM:

是MYISAM的一个变种,能够将多个MyISAM表合并成一个虚表

NDB:

是MySQL CLUSTER中专用的存储引擎、

第三方的存储引擎

OLPT

XtraDB:增强的InnoDB,有Percona提供

编译安装时,下载XtraDB的源码替代MySQL存储引擎中的InnoDB的源码

PBXT:MariaDB自带此存储引擎

支持引擎级别的复制、外键约束,对SSD磁盘提供适当支持

支持事务、MVCC

TokuDB:使用 Fractal Trees索引,适用存储大数据,拥有很好的压缩比,已经被引入MariaDB

列式数据存储引擎:

Infobright:目前较有名的列式引擎,适用于海量数据存储场景,如PB级别,专为数据分析和数据仓库设计

InfiniDB

MonetDB

LucidDB

开源社区存储引擎:

Aria:前身为Maria,是增强版的MyISAM(支持崩溃后安全恢复,支持数据缓存)

Groona:全文索引引擎

Mroonga:是基于Groona的二次开发版

OQGraph:由open query研发,支持图(网状 )结构的存储引擎

SphinxSE:为Sphinx全文搜索服务器提供了SQL接口

Spider:能将数据切分成不同的分片,比较高效透明的实现了分片(shared),并支持在分片上支持并行查询

如何选择??

是否需要事务

备份的类型的支持

崩溃后的恢复

特有的特性

时间: 2024-10-15 15:23:29

mysql 存储引擎对比的相关文章

DML 事务 隔离级别 存储引擎对比

DML 事务 隔离级别 存储引擎对比 DML insert into 第一种: insert into tb_name [(col1,col2,....)]{values|value}(val1,val2,...)[,(val21,val22,....),....] 第二种: insert into tb_name set col_name=val1,col2=val2,.... 第三种(将一个表中的数据插入到另外一张表中): insert into tb_name select clause

MySql存储引擎+表解压缩机制+索引+查询缓存机制+慢查询日志

一.大型网站优化之MySql优化 1.优化和不优化的对比的 在业界当中我们有一个叫大数据(big data)的概念,所谓的大数据指代千万级别以上的数据作为起步的数据.所以我们现在需要对两张都具有50331650条记录的表进行查询对比,其中表名为tbl_no的表是没有做过任何优化手段的表,表名为tbl_yes的表是做过优化手段的表.这个实验的目的是观察具有优化手段和不具有优化手段的查询中速度的差别. 实验条件: 1)两张表的数据记录总数是相同的 2)两张表的数据字段结构也是一样的 3)查询的记录的

【转】mysql存储引擎

http://www.cnblogs.com/kevingrace/p/5685355.html Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩 展名为.MYD (MYData).索引文件的扩 展名是.MYI (MYIndex). 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件

MySQL存储引擎 - Myisam和Innodb

Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩 展名为.MYD (MYData).索引文件的扩 展名是.MYI (MYIndex). 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的 大小只受限于操作系统文件的大小,一般为 2GB 事务处理上方面: MyISA

MySQL存储引擎差异化实验

本篇把MySQL最常用的存储引擎给大家做一个介绍,然后通过插入.修改和并发实验来了解和验证一下它们之间的一些差异. 一.MySQL存储引擎简介 存储引擎在MySQL结构里占据核心的位置,是上层抽象接口和存储的物理文件之间的桥梁.每一种storage engine 架构组件都是根据特定的场合来设计的,负责数据的 I/O 操作,并启用一些特性的支持. MySQL存储引擎被设计为插件式结构,每种存储引擎可从运行的mysql里动态加载或卸载.我们可以在客户端连接后用show plugins;查看当前加载

浅谈MySQL存储引擎-InnoDB&amp;MyISAM

存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式是不同的.每一种存储引擎都有它的优势和劣势,本文只讨论最常见的InnoDB和MyISAM两种存储引擎进行讨论.本文中关于数据存储形式和索引的可以查看图解MySQL索引 MySQL逻辑架构图: InnoDB存储引擎 InnoDB是默认的事务型存储引擎,也是最重要,使用最广泛的存储引擎.在没有特殊情况下,一般优先使用InnoDB存储引擎. 1??.数据存储形式

7.Mysql存储引擎

7.表类型(存储引擎)的选择7.1 Mysql存储引擎概述 mysql支持插件式存储引擎,即存储引擎以插件形式存在于mysql库中. mysql支持的存储引擎包括:MyISAM.InnoDB.BDB.MEMORY.MERGE.EXAMPLE.NDB Cluster.ARCHIVE.CSV.BLACKHOLE.FEDERATED等. 其中:InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表: 默认存储引擎(即建表时不指定存储引擎),mysql5.5开始默认存储引擎为InnoDB,my

为什么用B+树做索引&amp;MySQL存储引擎简介

索引的数据结构 为什么不是二叉树,红黑树什么的呢? 首先,一般来说,索引本身也很大,不可能全部存在内存中,因此索引往往以索引文件的方式存在磁盘上.然后一般一个结点一个磁盘块,也就是读一个结点要进行一次IO操作. 而二叉树啊这些树类的数据结构,查找时间主要和树的高度有关,所以虽然一颗AVL树或者是红黑树在查找上比起顺序遍历的O(N)有了比较大的改善,但B树和B+树因为每个结点存的元素更多,所以查询更快,对磁盘的IO操作也更少. 为什么是B+树而不是B树呢? 1. 单一节点存储更多的元素(这样该节点

InnoDB与MyISAM等存储引擎对比

文章原文:blog.ouyangsihai.cn >> InnoDB与MyISAM等存储引擎对比 InnoDB存储引擎介绍 InnoDB引擎是Mysql的默认的存储引擎,他有很多自己的特性,下面一一列举. 支持事务,InnoDB存储引擎主要就是为了在线事务处理(OLTP)的应用而设计的. 行锁设计,支持外键,非锁定读. 支持多版本的并发控制(MVCC)来获得高并发性. 提供了插入缓冲.二次写.自适应哈希索引.预读等高性能和高可用的功能. 上面这些算是 InnoDB 存储引擎的一些特点了,也是它