一、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)相关推荐

  1. MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别

    文章目录 MySQL存储引擎InnoDB.MyISAM和MEMORY介绍详解和区别 InnoDB存储引擎 特点 操作示例 创建InnoDB表 修改表引擎为InnoDB MyISAM存储引擎 特点 操作 ...

  2. 常用Mysql存储引擎--InnoDB和MyISAM简单总结

    常用Mysql存储引擎--InnoDB和MyISAM简单总结 2013-04-19 10:21:52|  分类: CCST|举报|字号 订阅 MySQL服务器采用了模块化风格,各部分之间保持相对独立, ...

  3. MySQL存储引擎InnoDB,MyISAM

    MySQL存储引擎InnoDB,MyISAM 1.区别: (1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQ ...

  4. MySQL存储引擎中MyISAM和InnoDB区别

    转载自  MySQL存储引擎中MyISAM和InnoDB区别 MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应 ...

  5. MySQL存储引擎InnoDB和MyISAM的区别

    文章目录 前言 一.MySQL 引擎 二.MyISAM和InnoDB特点 三.InnoDB和MyISAM的区别 总结 前言 面试经常会问到MySQL存储引擎的相关内容.常见的MySQL存储引擎有MyI ...

  6. mysql存储引擎InnoDB与MyISAM的区别

    mysql存储引擎InnoDB与MyISAM的区别 众所周知,mysql之前的存储引擎是MyISAM,在5.6版本之后默认的存储引擎是InnoDB,那么两个存储引擎有什么区别? 一.MyISAM 存储 ...

  7. mysql dba系统学习(21)mysql存储引擎InnoDB

    mysql存储引擎InnoDB 1,主体系结构: 默认7个后台线程,4个io thread(insert buffer.log.read.write),1个master thread(优先级最高),1 ...

  8. Mysql存储引擎Innodb的读写锁、行级锁

    读写锁 Mysql存储引擎Innodb在处理并发读或者写的时候,通过两种类型的锁来解决并发问题,这两种锁通常称为共享锁和排他锁,也叫读锁和写锁. 读锁是共享的,即多个客户端可以同时读取同一资源. 写锁 ...

  9. MySQL存储引擎之Myisam和Innodb总结性梳理

    Mysql有两种常用的存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名 ...

  10. MySQL存储引擎、MyISAM、InnoDB

    一. MySQL存储引擎MyISAM与InnoDB如何选择 MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).B ...

最新文章

  1. java中的“”、“|”、“^”、“~”运算符怎么用?
  2. java get与post区别_HTTP请求(GET与POST区别)和响应
  3. python mean dropna_小丸子踏入python之路:python_day05(用Pandas处理泰坦尼克船员获救数据titanic_train.csv)...
  4. 对象数组与普通数组 java 0913
  5. java project整合spring和hibernate
  6. ftp服务器文件端口,ftp服务器端口用哪个文件
  7. 如何修复 Ubuntu 上“...script returned error exit status 1”的错误
  8. java键盘钩子_jna test【鼠标 键盘钩子】
  9. 如何从Win11系统安装回win10系统?
  10. 今生梦一场,思念你的殇
  11. sql计算用户留存率和时间留存率
  12. npm i安装命令中的-g -D -S的区别
  13. Vue实现导入Excel功能
  14. itunes store服务中断_终于明白为什么那么多人吐槽apple的态度了.临时工一样的中国区itunes store客服......
  15. 基于ThinkPHP6+Layui后台开发框架
  16. u盘在计算机磁盘中显示为磁盘1,U盘盘符显示却提示插入磁盘该怎么办
  17. Sqlite3安装使用(基于Windows 10)
  18. LFToolbox0.4官方使用文档说明
  19. 使用 FSL 和 TrackVis 分析 DTI 数据
  20. 不靠视觉靠力觉,佐治亚理工学院团队使机器人自学帮助人类穿衣

热门文章

  1. JMeter教程2 : 一个简单的HTTP请求实例(创建测试计划)
  2. Excel中IF函数和AND函数结合使用进行多条件判断
  3. 原码反码补码原理理解
  4. 如何查询电脑的是ip地址
  5. 中国将在2014年成为十万亿级的超级大国
  6. 在线客服系统源码开发实战总结:渐变色效果的实际运用效果
  7. Hsiao.Wang - IT实战派 入驻CSDN
  8. VisualSVN Server的配置和使用方法(项目部署到svn上)
  9. 从头来之【图解针对虚拟机iOS开发环境搭建】
  10. Locust(性能测试)