mysql中的几种存储引擎

mysql常用的几种存储引擎

MyISAM:

(1)做很多count 的计算;

(2)插入不频繁,查询非常频繁;

(3)没有事务。

InnoDB:

InnoDB逻辑存储结构:
所有表的数据被逻辑的存放在一个表空间里。表空间又由段(segment)区(extent)页(page)组成,
页在一些文档中也称为块。
表空间由各个段组成,数据段即为B+树的叶节点,索引段即为B+树的非索引节点(我理解的是B+树中的非叶子节点)。
区由64个连续的页组成,每个页的大小16kb,每个区的大小1Mb。对于大的数据段,InnoDB存储引擎最多可以申请4个区。

(1)可靠性要求比较高,或者要求事务;

(2)表更新和查询都相当的频繁,并且表锁定的机会比较大的情况。

为什么MyISAM会比Innodb 的查询速度快?

INNODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多;
1)数据块,INNODB要缓存,MYISAM只缓存索引块, 这中间还有换进换出的减少;
2)innodb寻址要映射到块,再到行,MYISAM 记录的直接是文件的OFFSET,定位比INNODB要快
3)INNODB还需要维护MVCC一致;虽然你的场景没有,但他还是需要去检查和维护
MVCC ( Multi-Version Concurrency Control )多版本并发控制

Archive:
高压缩和快速插入的特点Archive非常适合作为日志表的存储引擎,但是前提是不经常对该表进行查询操作。

MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。
它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

原文地址:https://www.cnblogs.com/smallJunJun/p/9573985.html

时间: 2024-10-07 12:24:58

mysql中的几种存储引擎的相关文章

MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

先去查一下"引擎"概念. 引擎(Engine)是电子平台上开发程序或系统的核心组件.利用引擎,开发者可迅速建立.铺设程序所需的功能,或利用其辅助程序的运转.一般而言,引擎是一个程序或一套系统的支持部分.常见的程序引擎有游戏引擎,搜索引擎,杀毒引擎等. Ok,我们知道了,引擎就是一个程序的核心组件. 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式. 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分.不同的存储

MySQL 常见的两种存储引擎

MySQL两种常见的存储引擎有:MyISAM 和 InnoDB,两者区别如下: 1.count运算:MyISAM 有缓存表的 meta-data 元数据,元数据包括行数等,因此其做 COUNT(*) 查询时不需要消耗多少资源.而 InnoDB 就没有这个缓存. 2.事务和崩溃后的安全恢复:MyISAM强调的是性能,每次查询具备原子性,执行速度比 InnoDB 更快,但是 MyISAM 不提供事务的支持.而 InnoDB 支持事务.外部键等高级数据库功能.具有事务提交(commit).回滚(rol

MySQL中创建表指定存储引擎

create table test( id int(10) unsigned not null auto_increment, name varchar(10) character set utf8, age int(10),primary key(id)) engine=MyISAM create table test( id int(10) unsigned not null auto_increment, name varchar(10) character set utf8, age i

Mysql数据库的触发器、存储引擎和存储过程

数据库的触发器 1.触发器 触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句): DELETE,INSERT,UPDATE 我们可以监视某表的变化,当发生某种变化时,触发某个操作. 能监视:增,删,改 触发操作:增,删,改 2.触发器应用场景: 1.当向一张表中添加或删除记录时,需要在相关表中进行同步操作.比如,当一个订单产生时,订单所购的商品的库存量相应减少. 2.当表上某列数据的值与其他表中的数据有联系时.比如,当某客户进行欠款消费

MySQL教程详解之存储引擎介绍及默认引擎设置

什么是存储引擎? 与其他数据库例如Oracle 和SQL Server等数据库中只有一种存储引擎不同的是,MySQL有一个被称为“Pluggable Storage Engine Architecture”(可替换存储引擎架构)的特性,也就意味着MySQL数据库提供了多种存储引擎.用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎.MySQL数据库在实际的工作中其实分为了语句分析层和存储引擎层,其中语句分析层就主要负责与客户端完成连接并且事先分析出SQL

MySQL索引与事务、存储引擎MyISAM和InnoDB (理论+实践篇)

索引的概念 数据库中的索引与书籍中的目录类似 在一本书中,无须阅读整本书,利用目录就可以快速查找所需信息 书中的目录是一个词语列表,其中注明了包含各个词的页码 数据库索引 在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据 数据库中的索引|是某个表中一-列或者若干列值的集合,以及物理标识这些值的数据页的逻辑指针清单 索引的的作用 设置了合适的索引之后,数据库利用各种快速的定位技术,能够大大加快查询速率 特别是当表很大时,或者查询涉及到多个表时,使用索引可使查询加快成3 F

MySQL视图、存储过程与存储引擎

MySQL视图.存储过程与存储引擎 一.前言 ? 前面的文章已经介绍了MySQL的索引与事务以及MySQL的备份与恢复的相关的内容,本文将对MySQL视图及存储过程以及存储引擎进行讲述. 二.MySQL视图 2.1问题引出--视图的概念 ? 我们在使用SQL语句进行多表查询的时候的命令是非常冗长而麻烦的,如果说这样的操作还非常多的使用的情况下就会加大工作人员的工作量,毕竟不能保证如此长的代码不会写错,并且多次进行如此复杂的查询也会造成服务器资源占用比变大的问题,那么我们有什么好的办法解决这样的问

mysql几种存储引擎介绍

在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? 关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式.有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差:而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,

谈谈MySQL两种存储引擎

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