MySQL存储引擎概述
一、MySQL支持插件式存储引擎,默认包括有多种存储引擎,还可以自己定制化引擎,引擎是在表级别设置的。
二、各种存储引擎的特性

(A) MyISAM :不支持事务、不支持外键、访问速度快。
每个MyISAM表在磁盘上存储成3个文件,文件名与表名相同,扩展名是:
(A1) frm (存储表定义)
(A2) MYD (MYData, 存储数据)
(A3) MYI (MYIndex, 存储索引)
数据文件和索引文件可以放置在不同的目录,平均分布IO,获得更快的速度。可以在创建表的时候,指定该表的 DATA DIRECTORY
和 INDEX DIRECTORY 语句来分别指定路径。
MyISAM表可能损坏,可以通过工具检测和修复,表损坏可能导致数据库异常重新启动,需要尽快修复。支持三种存储格式,分别是:
静态(固定长度)表;字段都是非变长字段:存储速度快,容易缓存,故障易恢复,占用空间多。注意:会去除字段的尾部空格
动态表;包含变长字段,可能产生碎片,需定期优化表。占用空间较多,故障不易恢复。
压缩表;由 myisampack 工具创建,占用空间非常小,每个记录单独压缩,非常小的访问开支。
(B) InnoDB :支持事务、支持外键,相比于MyISAM,写入速度稍差一些,占用空间稍多一些。
注意:使用 LAST_INSERT_ID() 查询的只是当前线程最后插入记录使用的值,并不是数据库中最后插入记录使用的值。
外键关联时:四种索取类型:
RESTRICT:限制在子表有关联记录的情况下,父表不能更新或者删除;
NO ACTION:限制在子表有关联记录的情况下,父表不能更新或者删除;
CASCADE:表示父表在更新或删除时,相应地更新和删除子表的记录。
SET NULL:表示父表在更新或删除时,子表的对应字段被SET NULL。
当某个表被其他表创建了外键参照,那么该表的对应索引或者主键禁止被删除。
可以暂时关闭外键的检测:SET FOREIGN_KEY_CHECKS=0。
InnoDB存储表和索引有两种方式:
使用共享表空间存储,表结构在 .frm 文件中,数据和索引文件在 innodb_data_home_dir 和 innodb_data_file_path 定义的表空间中,可以是多个文件。
使用多表空间存储,表结构在 .frm 文件中,每个表的数据和索引单独在 .ibd 中。如果是分区表,这每个分区对应单独的 .ibd 文件,文件名是“表名+分区名", 可以指定每个分区的数据文件位置。
注意:即使在多表空间的存储方式下,共享表空间还是必须的,InnoDB把内部数据词典和未作日志放在这个文件中。
(C) MEMORY:使用内存中的内容来创建表。访问速度快,默认是HASH索引,数据不可持久化。
每个MEMORY表只对应一个磁盘文件,格式是 .frm。
每个MEMORY表的数据量大小,受到 max_heap_table_size 系统变量的约束,初始大小是16MB。
MEMORY表通常用于内容变化不频繁的转换码表,统计操作的中间结果表。注意该表数据的不持久化特性。
(D) MERGE:其实就是对多个结构完全相同的MyISAM表的合并表示。
MySQL存储引擎概述的更多相关文章
- mysql基础之-mysql存储引擎概述(八)
0x01 mysql 存储引擎:存储引擎也通常被称作“表类型” mysql> show engines; --- 查看当前所有所支持的存储引擎 mysql> show table st ...
- MYSQL 存储引擎概述
一.存储引擎 Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中每一种技术都使用了不同的存储机制,索引技巧.锁定水平并且最终提供广泛的不同功能和能力.通过选择不同的技术,你能够获得 ...
- 第 3 章 MySQL 存储引擎简介
第 3 章 MySQL 存储引擎简介 前言 3.1 MySQL 存储引擎概述 MyISAM 存储引擎是 MySQL 默认的存储引擎,也是目前 MySQL 使用最为广泛的存储引擎之一.他的前身就是我们在 ...
- 7.Mysql存储引擎
7.表类型(存储引擎)的选择7.1 Mysql存储引擎概述 mysql支持插件式存储引擎,即存储引擎以插件形式存在于mysql库中. mysql支持的存储引擎包括:MyISAM.InnoDB.BDB. ...
- MySQL性能调优与架构设计——第3章 MySQL存储引擎简介
第3章 MySQL存储引擎简介 3.1 MySQL 存储引擎概述 MyISAM存储引擎是MySQL默认的存储引擎,也是目前MySQL使用最为广泛的存储引擎之一.他的前身就是我们在MySQL发展历程中所 ...
- Mysql存储引擎的选择
Mysql存储引擎概述 mysql的存储引擎是插件式的,用户可以根据需求选择如何存储和索引数据是否使用事务等. Mysql支持多种存储引擎,用户可以选择不同的引擎来提高应用的效率,灵活的存储方案,存储 ...
- MySQL体系结构和存储引擎概述
MySQL体系结构和存储引擎概述 一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是 ...
- Mysql存储引擎概念特点介绍及不同业务场景选用依据
目录 MySQL引擎概述 1 MySAM引擎介绍 2 什么是InnoDB引擎? 3 生产环境中如何批量更改MySQL引擎 4 有关MySQL引擎常见企业面试题 MySQL引擎概述 Mysql表存储结构 ...
- mysql存储引擎的种类与差别(innodb与myisam)
查找数据库的存数引擎: show engines show variables like '%storage_engine%' 更改数据库的引擎更改配置文件/etc/my.cnf 改动default- ...
随机推荐
- wpf的毛边窗体效果 前台代码
<Window x:Class="wpfwindowsmove.毛边窗体" xmlns="http://schemas.microsoft.com/w ...
- sed,grep,awk命令常用法
查看当天nginx访问日志中2016:03:25到2016:05点passport.mingxiao.com域名访问量最多的url,可以查看网站是否被刷. 法一: sed -n '/2016:03:2 ...
- 15款优秀移动APP产品原型设计工具
一新来小盆友问:“移动产品原型设计都用啥工具?” 答:“@#¥……&%*” 又问:“能详细说下各个工具吗?我比较一下” “……” 好吧,谁让我那么的爱分享而你又是小美女呢 ———————正文开 ...
- 数据库备份与恢复(Mysql)
Mysql备份种类可以分为两种:完全备份和增量备份 完全备份:对某一个时间点上的所有数据或应用进行的一个完全复制. 增量备份:指在一次全备份上或上一次增量备份后,以后每次的备份只需备份与前次相比增加或 ...
- ie6下absolute:fixed问题,完美兼容
普通css代码 .fix_foot{height: 30px; background: #ff0000; position: %; z-index:;} ie6兼容代码 * html,* html b ...
- 微信jssdk录音功能开发记录
原文地址:http://www.cnblogs.com/liujunyang/p/4962423.html
- Yii2 yii2-imagine的使用
<?php /** * 图片常用处理 * * 需要 yii/yii2-imagine 的支持 * php composer.phar require --prefer-dist yiisoft/ ...
- hibernate4中取得connection的方法
在hibernate3中,使用了c3p0连接池,尝试了多种办法取得connection对象,以下两种可以使用. Java代码 Connection conn; // 方法1:hibernate4中将 ...
- Spring实战 (第3版)——依赖注入
首先弄明白几个概念: 1.什么是POJO 2.JavaBean规范 3.EJB(Enterprise JavaBean) 体会Spring如何简化Java开发. 创建应用对象(组件)之间协作关系的行为 ...
- Nginx中的rewrite指令
转自:http://www.76ku.cn/articles/archives/317 rewite.在server块下,会优先执行rewrite部分,然后才会去匹配location块server中的 ...