目录
1.MySQL体系结构
(资料图)
2.存储引擎介绍
3.存储引擎特点
4.存储引擎选择
1.MySQL体系结构
MySQL整体的逻辑结构可以分为4层,客户层、服务层、存储引擎层、数据层
客户层
客户层:进行相关的连接处理、权限控制、安全处理等操作
服务层
服务层负责与客户层进行连接处理、处理以及执行SQL语句等,主要包含连接器、查询缓存、优化
器、执行器、存储引擎。触发器、视图等也在这一层
存储引擎层
存储引擎层负责对数据的存储和提取,常见的存储引擎有InnoDB、MyISAM、Memory等,在
MySQL5.5之后,MySQL默认的存储引擎就是InnoDB,InnoDB默认使用的索引结构就是B+树,上面
的服务层就是通过API接口与存储引擎层进行交互的
数据层
数据层系主要包括MySQL中存储数据的底层文件,与上层的存储引擎进行交互,是文件的物理存
储层。其存储的文件主要有:日志文件、数据文件、配置文件、MySQL的进行pid文件和socket文
件等。
2.存储引擎介绍
大家可能没有听说过存储引擎,但是一定听过引擎这个词,引擎就是发动机,是一个机器的核心组
件。 比如,对于舰载机、直升机、火箭来说,他们都有各自的引擎,是他们最为核心的组件。而
我们在选择引擎的时候,需要在合适的场景,选择合适的存储引擎,就像在直升机上,我们不能选
择舰载机的引擎一样。而对于存储引擎,也是一样,他是mysql 数据库的核心,我们也需要在合适
的场景选择合适的存储引擎。接下来就来介绍一下存储引擎。存储引擎就是存储数据、建立索引、
更新/ 查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被
称为表类型。我们可以在创建表的时候,来指定选择的存储引擎,如果没有指定将自动选择默认的
存储引擎
1). 建表时指定存储引擎
CREATE TABLE 表名(字段1 字段1类型 [ COMMENT 字段1注释 ] ,......字段n 字段n类型 [COMMENT 字段n注释 ]) ENGINE = INNODB [ COMMENT 表注释 ] ;
2). 查询当前数据库支持的存储引擎
show engines;
示例演示:
A. 查询建表语句 --- 默认存储引擎 : InnoDB
show create table account;
我们可以看到,创建表时,即使我们没有指定存储疫情,数据库也会自动选择默认的存储引擎。
B. 查询当前数据库支持的存储引擎
show engines ;
C. 创建表 my_myisam , 并指定MyISAM存储引擎
create table my_myisam(id int,name varchar(10)) engine = MyISAM ;
D. 创建表 my_memory , 指定Memory存储引擎
create table my_memory(id int,name varchar(10)) engine = Memory ;
3.存储引擎特点
上面我们介绍了什么是存储引擎,以及如何在建表时如何指定存储引擎,接下来我们就来介绍下来
上面重点提到的三种存储引擎 InnoDB 、 MyISAM 、 Memory 的特点。
1). 介绍
InnoDB 是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后, InnoDB 是默认的
MySQL 存储引擎。
2). 特点
DML 操作遵循 ACID 模型,支持事务;
行级锁,提高并发访问性能;
支持外键 FOREIGN KEY 约束,保证数据的完整性和正确性;
3). 文件
xxx.ibd : xxx 代表的是表名, innoDB 引擎的每张表都会对应这样一个表空间文件,存储该表的表结
构( frm- 早期的 、 sdi- 新版的)、数据和索引。
参数: innodb_file_per_table
show variables like "innodb_file_per_table";
如果该参数开启,代表对于 InnoDB 引擎的表,每一张表都对应一个 ibd 文件。 我们直接打开
MySQL 的数据存放目录: C:\ProgramData\MySQL\MySQL Server 8.0\Data , 这个目录下有很多
文件夹,不同的文件夹代表不同的数据库,我们直接打开itcast 文件夹。
可以看到里面有很多的 ibd 文件,每一个 ibd 文件就对应一张表,比如:我们有一张表 account ,就
有这样的一个 account.ibd 文件,而在这个 ibd 文件中不仅存放表结构、数据,还会存放该表对应的
索引信息。 而该文件是基于二进制存储的,不能直接基于记事本打开,我们可以使用 mysql 提供一
个指令 ibd2sdi ,通过该指令就可以从 ibd 文件中提取 sdi 信息,而 sdi 数据字典信息中就包含该表
的表结构。
4). 逻辑存储结构
表空间 : InnoDB 存储引擎逻辑结构的最高层, ibd 文件其实就是表空间文件,在表空间中可以
包含多个 Segment 段。
段 : 表空间是由各个段组成的, 常见的段有数据段、索引段、回滚段等。 InnoDB 中对于段的管
理,都是引擎自身完成,不需要人为对其控制,一个段中包含多个区。
区 : 区是表空间的单元结构,每个区的大小为 1M 。 默认情况下, InnoDB 存储引擎页大小为
16K , 即一个区中一共有 64 个连续的页。
页 : 页是组成区的最小单元, 页也是InnoDB 存储引擎磁盘管理的最小单元,每个页的大小默
认为 16KB 。为了保证页的连续性, InnoDB 存储引擎每次从磁盘申请 4-5 个区。
行 : InnoDB 存储引擎是面向行的,也就是说数据是按行进行存放的,在每一行中除了定义表时
所指定的字段以外,还包含两个隐藏字段 ( 后面会详细介绍 ) 。
1). 介绍
MyISAM 是 MySQL 早期的默认存储引擎。 2). 特点
不支持事务,不支持外键
支持表锁,不支持行锁
访问速度快
3). 文件
xxx.sdi :存储表结构信息
xxx.MYD: 存储数据
xxx.MYI: 存储索引
1). 介绍
Memory 引擎的表数据时存储在内存中的,由于受到硬件问题、或断电问题的影响,只能将这些表
作为
临时表或缓存使用。
2). 特点
内存存放
hash 索引(默认)
3). 文件
xxx.sdi :存储表结构信息
面试题 : InnoDB 引擎与 MyISAM 引擎的区别 ? ① . InnoDB 引擎 , 支持事务 , 而 MyISAM 不支持。 ② . InnoDB 引擎 , 支持行锁和表锁 , 而 MyISAM 仅支持表锁 , 不支持行锁。 ③ . InnoDB 引擎 , 支持外键 , 而 MyISAM 是不支持的。 主要是上述三点区别,当然也可以从索引结构、存储限制等方面,更加深入的回答,具体参 考如下官方文档: https://dev.mysql.com/doc/refman/8.0/en/innodb-introduction.html https://dev.mysql.com/doc/refman/8.0/en/myisam-storage-engine.html
4.存储引擎选择
在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以
根据 实际情况选择多种存储引擎进行组合。
InnoDB: 是 Mysql 的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,
在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,
那么InnoDB 存储引擎是比较合适的选择。
MyISAM : 如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完
整性、并发性要求不是很高,那么选择这个存储引擎是非常合适的。
MEMORY :将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。 MEMORY 的缺陷就
是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性
-
世界新动态:【MySQL】存储引擎服务层负责与客户层进行连接处理、处理以及执行SQL语句等,主要包含连接器、查询缓存、优化
-
当前信息:微电子封装技术1、《微电子封装技术》是2015年科学出版社出版的图书。2、作者是胡永达、李元勋、杨邦朝。本文到此分享完毕,希望对大
-
月儿像柠檬原唱张小英_月儿像柠檬原唱1、《月儿像柠檬》是邓丽君演唱的一首歌曲,该曲目收录在她1970年8月发行的专辑《玫瑰姑娘》中。2、歌词:月儿像柠檬淡淡
-
相得益彰是什么意思_相得益彭的意思是什么1、读音:xiāngdéyìzhāng解释:指两个人或两件事物互相配合,使双方的能力、作用和好处能得到充分展示。
-
1000块送女友一条围巾,寒冬变暖冬,撩女妙招这个价位只能选择蔻驰了,如果两三千的话选择就多一些,高一点的选择古驰是最好的,1000左右的话还是蔻驰。首先蔻驰在品牌力是非常好的,不仅
-
热资讯!成都电动摩托车上牌(材料+地点+流程)成都电动摩托车上牌(材料+地点+流程)本地宝综合2023-03-0915:12导语根据规定,成
-
每日热点:南通本科生补贴发放到哪里?补贴资金直接发放到人才的个人社保卡银行账户。为确保补贴拨付成功,请申报人员务必确认社保卡处于激活状态并开通金融功能。在享受3年生活津贴
-
lol变成窗口模式了怎么办_lol怎么变成窗口模式 新要闻1、lol变成窗口模式的的方法:一、在游戏进行中时,按ESC键,弹出选项对话框;二、在选项对话框右边。2、选择视频菜单;
-
建设工程规划许可证制度_请问 建设工程规划许可证的有效期是多长时间1、要看你施工还是未施工。2、如果没施工,有效期为1年,然后要去规划局延期1年。3、如果已经施工,可以在工程竣工时,用规划许可证副本换取正
-
3月榆林市动力煤市场价格或将在窄幅区间弱稳运行为主-世界新资讯2月份榆林市监测的16种能化产品价格同比4升12降、环比“6升5平5降”。监测情况及原因简析如下。2月份榆林市动力煤坑口价格先跌后涨、涨跌互...
-
如何扩大电脑c盘容量的办法_如何扩大电脑c盘容量 观天下1、增大C盘的大小在传统分区软件中通常的做法是:首先缩小其它盘(如缩小D盘)以让C盘后面产生一块紧邻的未分配空间,然后再
-
东邪西毒台词_东邪西毒导演1、《射雕英雄传之东邪西毒》《射雕英雄传》的第二部,由王天林、杜琪峰执导。以上就是【东邪西毒台词,东邪西毒导演】相关内容
-
HURT怎么读_HURT英语怎么读|当前速递解答:1、赫特的英语发音:英语[HT],美式[HRT]。2、伤害:v (引起)疼痛和伤害;感到痛苦;制造不愉快;使烦
-
日照旅游景点大全 日照旅游景点大全介绍 今日热闻说起日照,我们往往会觉得这是一座小编市,但这小编市,往往独特的魅力。日照有着优美的海岸线,自然干净的海水,是值得人们选择
-
环球关注:纸的历史简介今天小编肥嘟来为大家解答以上的问题。纸的历史简介相信很多小伙伴还不知道,现在让我们一起来看看吧!1、我国古代四大发明之一。2、用以书写、
-
张煜再离职:对公立医院不抱希望了|热文张煜再离职:对公立医院不抱希望了
-
每日关注!cydia威锋源地址2021_cydia威锋源1、打开Cydia后,选中下面导航的“管理”;然后选列表中的“软件源”。2、打开“软件源”后,点右上角的“编辑”,然
-
天天百事通!最新民调:多数美国人对财务前景悲观 为十几年来信心最低值video-js{width:300px;height:150px;
-
全球热讯:瘦身霜怎么按摩效果好涂瘦身霜一般以按、压、揉、捏、旋转五种手法交替变换。特别是腰腹、臀部等脂肪比较多的部位。按摩和揉捏的方式适合瘦身霜大面积涂抹。而手臂
-
长沙银行:第四大股东兴业投资拟减持不超400万股该行股份|每日动态长沙银行3月2日公告,持有该行02亿股股份(占该行总股本的比例为02%)的第四大股东湖南兴业投资有限公司拟在减持计划公告
-
自力村_关于自力村的介绍|天天热头条1、自力村,位于广东省开平市塘口镇,隶属于塘口镇强亚村委会,世界文化遗产地之一,国家重点文物保护单位,俗称黄泥岭,东距开
-
康天庥1、康天庥,男,电视剧《外来媳妇本地郎》里的角色,是康祈宗和苏妙婵的儿子,是罗飞雁的丈夫,职业是昌盛街朋友圈咖啡屋的三个
-
全球信息:《太阳灰国》有望很快登陆Xbox和Switch《太阳灰国》有望很快登陆Xbox和Switch,太阳灰国,xbox,switch,登陆,动作游戏,游戏
-
知行学院-天天微速讯1、西北师范大学知行学院坐落于兰州市安宁区,成立于1999年,2004年经教育部确认为首批独立学院。2、据2019年6月
-
焦点资讯:马拉松跑出消费活力发令枪响,全国多地马拉松赛事接续开跑。根据公开披露的信息,苏州、杭州、芜湖、无锡、武汉、宿迁、厦门等地的马拉松赛事都已经
-
每日信息:草鞋虫图片_草鞋虫1、百足虫是叫千足虫或者草鞋虫,不咬人,但是不要用手来触摸它,因为千足虫虽然不咬人,但触摸摆弄它时可分泌出能引起局部刺
-
什么是静电贴静电贴是采用PVC静电膜材质,材料本身不带胶,依靠静电吸附到承载面上的贴纸,其对各种光滑的表面具有很强的黏着力,可以反复撕贴。静电贴常用
-
天天速读:3月7日基金净值:安信价值成长混合A最新净值1.651,跌1.22%3月7日,安信价值成长混合A最新单位净值为1 651元,累计净值为1 651元,较前一交易日下跌1 22%。历史数据显示该基金近1个月下跌2 85%,近3个月
-
【环球新视野】蝙蝠的寿命有多久1、要看蝙蝠的种类,像果蝠寿命可达35年以上,而身体强健的食鱼蝠寿命却不到20年,吸血蝙蝠寿命在12年左右,而猪鼻蝠(蝴蝶蝠)这类微型蝙蝠寿
-
中国商人 | 近1500亿的新茶饮市场 靠什么支撑高速增长?2021年3月,在人社部、国家市场监督管理总局、国家统计局联合发布的新职业信息名单中,“调饮师”作为新的工种正式入选。人社部对其定义为...