MySQL存储引擎详解
《MySQL存储引擎详解》要点: 本文主要讲解MySQL常用的存储引擎,以及之间的显著特点和区别.Verchielxy 原创,转载注明出处. MySQL的简介MySQL数据库是一款关系型数据库,原型最早由瑞典一件公司开发而成,后来被Oracle收购,截止目前为止,仍然是一款开源的数据库. 由于Oracle已经收购,所以目前MySQL仍然存在闭源的风险,所以衍生出其他给予MySQL的分支版本,mariadb就是其中之一. 什么是存储引擎存储引擎是相对于关系型数据库里面的表而言的.换句话说,你可以理解,表为一辆汽车,那么引擎就是发动机,决定汽车的动力. 但是这里又有一点不同,就是发动机的速度,不是决定一辆车好坏的唯一判别方式.同样的,存储引擎也是如此. 根据不同的使用场景需求,选择不同的存储引擎,这是一个良好开发的起点. MySQL存储引擎分类下面的代码可以看到有种存储引擎 show engines; MySQL存储引擎有一共有8种
重要提示下面我们谈一谈常见的几种存储引擎,由于不同的MySQL版本对于很多细节方面的不同,造成的差异性很大,这里我们以MySQL的5.6版本为主来讨论. MyISAM存储引擎详解MyISAM表是独立于操作系统的,这说明可以轻松地将其从Windows服务器移植到Linux服务器; 每当我们建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,文件名就是表名. 例如,我建立了一个MyISAM引擎的example表,那么就会生成以下三个文件:
最重要的一点,MyISAM表是无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM存储引擎. 也正是因为不支持事务,所以MyISAM的读取速度是非常的快的,适合大数据量的read操作. MyISAM一般性特点如下:
InnoDB存储引擎详解MySQL 5.5、5.6默认的存储引擎. InnoDB表类型可以看作是对MyISAM的进一步更新产品,它提供了事务、行级锁机制和外键约束的功能. InnoDB表类型基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB 这里要提到的最重要的一点就是,它支持事务.例如:一个高并发的量的商城网站,在同一时刻,要在不同的 表当中就插入数据,而这些数据之间有有关系,这个时候事务起到了决定性的作用.通俗理解起来就是,要么一起操作成功,要么一起操作失败. 支持事务,能帮助很多应用办理了数据关联方面的棘手问题. 对于事务你要了解ACID 事务
MyISAM和InnoDB存储引擎的差别对于锁
对于不带where条件的count (select count(*) form table)
对于AUTO_INCREMENT
对于事务
对于外键
构成上的区别
对于全文索引
MRG_MYISAM存储引擎MRG_MYISAM存储引擎是一组MyISAM表的组合,这些MyISAM表结构必须完全相同,尽管其使用不如其它引擎突出,但是在某些情况下非常有用.说白了,Merge表就是几个相同MyISAM表的聚合器;Merge表中并没有数据,对Merge类型的表可以进行查询、更新、删除操作,这些操作实际上是对内部的MyISAM表进行操作.Merge存储引擎的使用场景. MEMORY存储引擎Memory 是内存级别存储引擎,数据存储在内存中,所以他能够存储的数据量较小. 因为内存的特性,存储引擎对数据的一致性支持较差.锁级别为表锁,不支持事务.但拜访速度非常快,并且默认使用 hash 索引. Memory存储引擎使用存在内存中的内容来创建表,每个Memory表只实际对应一个磁盘文件,在磁盘中表现为.frm文件. ARCHIVE存储引擎这种类型只支持select 和 insert语句,而且不支持索引.常应用于日志记录和聚合分析方面. 全部资料来源于google,MySQL官方文档,英文和中文博客,由verchielxy翻译整理而成.感谢这些作者为开发者提供的名贵资料. 欢迎参与《MySQL存储引擎详解》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- select … into outfile 备份恢复(load data)以及mysqldu
- mysql – 用于sql INSERT … SELECT的mongodb转换
- MYSQL教程mysql字符集和校对规则(Mysql校对集)
- Mysql学习要慎用mysql的enum字段的原因
- Mysql实例MySQL 索引创建sql语句实例
- MYSQL查询:最近30分钟的最新时间戳唯一值
- 数据库里面,批量插入数据
- 数据库 -- mysql支持的数据类型
- java – 如何以编程方式为mysql jdbc驱动程序设置rewriteB
- Mysql入门windows server 2008 64位MySQL5.6免安装版本配置