MySQL 存储引擎(InnoDB、MyISAM、MEMORY)
一、MySQL的体系结构
1、连接层:最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。
2、服务层:第二成架构主要完成大多数的核心服务功能,如sql接口、并完成缓存的查询,sql的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如函数、过程等。
3、引擎层:存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。
4、存储层:主要是将数据存储在文件系统之上,并完成与存储引擎的交互。
注意:索引是在引擎层实现的,所以不同的存储引擎对应的索引是不同的
二、存储引擎简介
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。
显然,在创建表时可以指定存储引擎,若不指定,默认InnoDB
1、在创建表时指定存储引擎语法:
CREATE TABLE 表名(字段1 类型 ...字段n 类型
)ENGINE=存储引擎名;#案例:创建表my_myisam,并指定存储引擎MyISAMCREATE TABLE my_myisam(id INT PRIMARY KEY
)ENGINE=MYISAM;
2、查询当前数据库支持的存储引擎
三、存储引擎特点
1、InnoDB:是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5后,InnoDB是默认的MySQL存储引擎。
特点:
①DML操作遵顼ASID模型,支持事务;
②行级锁,提高并发访问性能;
③支持外键FOREIGN KEY约束,保证数据的完整性和正确性。
④xxx.ibd:x表示表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。参数:innodb_file_per_table
2、MyISAM:是MySQL早期的默认存储引擎。
特点:
①不支持事务,不支持外键
②支持表锁,不支持行锁
③访问速度快
④xxx.sdi :存储表结构信息
xxx.MYD:存储数据
xxx.MYI:存储索引
3、Memory:memory引擎的表数据是存储在内存中的,由于受到硬件的问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。
特点:
①内存存放,速度快
②hash索引(默认)
③.sdi:存储表结构信息
三种存储引擎的区别:
四、存储引擎的选择
InnoDB:是MySQL的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,包含很多更新、删除操作,那么innodb是比较合适的选择。
MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事物的完整性、并发性要求不是很高。
MEMORY:将所有数据保存在内存中,访问速度快,通常用与临时表及缓存。MEMORY的缺陷就是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。
MySQL 存储引擎(InnoDB、MyISAM、MEMORY)相关推荐
- MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别
文章目录 MySQL存储引擎InnoDB.MyISAM和MEMORY介绍详解和区别 InnoDB存储引擎 特点 操作示例 创建InnoDB表 修改表引擎为InnoDB MyISAM存储引擎 特点 操作 ...
- 常用Mysql存储引擎--InnoDB和MyISAM简单总结
常用Mysql存储引擎--InnoDB和MyISAM简单总结 2013-04-19 10:21:52| 分类: CCST|举报|字号 订阅 MySQL服务器采用了模块化风格,各部分之间保持相对独立, ...
- MySQL存储引擎InnoDB,MyISAM
MySQL存储引擎InnoDB,MyISAM 1.区别: (1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQ ...
- MySQL存储引擎中MyISAM和InnoDB区别
转载自 MySQL存储引擎中MyISAM和InnoDB区别 MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应 ...
- MySQL存储引擎InnoDB和MyISAM的区别
文章目录 前言 一.MySQL 引擎 二.MyISAM和InnoDB特点 三.InnoDB和MyISAM的区别 总结 前言 面试经常会问到MySQL存储引擎的相关内容.常见的MySQL存储引擎有MyI ...
- mysql存储引擎InnoDB与MyISAM的区别
mysql存储引擎InnoDB与MyISAM的区别 众所周知,mysql之前的存储引擎是MyISAM,在5.6版本之后默认的存储引擎是InnoDB,那么两个存储引擎有什么区别? 一.MyISAM 存储 ...
- mysql dba系统学习(21)mysql存储引擎InnoDB
mysql存储引擎InnoDB 1,主体系结构: 默认7个后台线程,4个io thread(insert buffer.log.read.write),1个master thread(优先级最高),1 ...
- Mysql存储引擎Innodb的读写锁、行级锁
读写锁 Mysql存储引擎Innodb在处理并发读或者写的时候,通过两种类型的锁来解决并发问题,这两种锁通常称为共享锁和排他锁,也叫读锁和写锁. 读锁是共享的,即多个客户端可以同时读取同一资源. 写锁 ...
- MySQL存储引擎之Myisam和Innodb总结性梳理
Mysql有两种常用的存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名 ...
- MySQL存储引擎、MyISAM、InnoDB
一. MySQL存储引擎MyISAM与InnoDB如何选择 MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).B ...
最新文章
- java中的“”、“|”、“^”、“~”运算符怎么用?
- java get与post区别_HTTP请求(GET与POST区别)和响应
- python mean dropna_小丸子踏入python之路:python_day05(用Pandas处理泰坦尼克船员获救数据titanic_train.csv)...
- 对象数组与普通数组 java 0913
- java project整合spring和hibernate
- ftp服务器文件端口,ftp服务器端口用哪个文件
- 如何修复 Ubuntu 上“...script returned error exit status 1”的错误
- java键盘钩子_jna test【鼠标 键盘钩子】
- 如何从Win11系统安装回win10系统?
- 今生梦一场,思念你的殇
- sql计算用户留存率和时间留存率
- npm i安装命令中的-g -D -S的区别
- Vue实现导入Excel功能
- itunes store服务中断_终于明白为什么那么多人吐槽apple的态度了.临时工一样的中国区itunes store客服......
- 基于ThinkPHP6+Layui后台开发框架
- u盘在计算机磁盘中显示为磁盘1,U盘盘符显示却提示插入磁盘该怎么办
- Sqlite3安装使用(基于Windows 10)
- LFToolbox0.4官方使用文档说明
- 使用 FSL 和 TrackVis 分析 DTI 数据
- 不靠视觉靠力觉,佐治亚理工学院团队使机器人自学帮助人类穿衣