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- ...
随机推荐
- Saltstack数据系统Grains和Pillar(三)
Saltstack数据系统 分为Grains和Pillar 一.Grains 静态数据,当Minion启动的时候收集的MInion本地的相关信息.(包含操作系统版本.内核版本.CPU.内存.硬盘.设备 ...
- NSRunLoop && NSTimer
新的一年的开始,希望大家一切越来越好,越来越开心快乐!!! 定时器及运行循环 NSRunLoop是iOS消息机制的处理模式 NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在 ...
- 最简单的jQuery插件
<script src="./jquery-1.7.1.min.js"></script><script>;(function($,undefi ...
- angular 兼容ie7 实现
<script src="~/Content/js/angular.min.js"></script><script src="~/Cont ...
- ubuntu下Eclipse安装
安装的版本是MARS 直接复制安装包到安装的目录,然后tar zxvf XXXX 对于不能输入中文,把系统的输入法改成ibus就行了,fctix不支持eclipse 汉化包的下载地址 http://d ...
- LaTex 使用 - 配置
Reference Link: http://www.howtotex.com/howto/installing-latex-on-windows/ MikTeX:http://miktex.org/ ...
- NodeJS Debugger
http://cnodejs.org/topic/4f16442ccae1f4aa27001105 http://blog.csdn.net/ygh_0912/article/details/9108 ...
- 51job前程无忧网站打不开,51job网站进不了,51job打不开
之前电脑一DNS一直用的四个114或者四个8,后面突然51job不能打开了,感觉莫名其妙地,因为手机上都能打开啊,虽然说51job上投简历没多大反应,但投了总比没投好吧.后面搞了好久,原来是DNS作怪 ...
- SSDB 数据库
SSDB数据库 SSDB是一套基于LevelDB存储引擎的非关系型数据库(NOSQL),可用于取代Redis,更适合海量数据的存储. 另外,rocksdb是FB在LevelDB的二次开发版本,因此也存 ...
- jQuery 取值、赋值的基本方法
转载:http://www.cnblogs.com/huanhuan86/archive/2012/06/13/2548071.html 获取元素的value值: /*获得TEXT.AREATEXT的 ...