mysql之引擎分析

MySQL-04-InnoDB存储引擎锁和加锁分析 介绍和分析InnoDB存储引擎锁相关内容 阅读详情

序言

    mysql的引擎有好多种,不同的引擎有不同的好处,但是又各有各的缺点,不论面试还是工作中,我们涉及最多的就是InnoDB和MyISAM了,其中InnoDB还是首选了,所以本文主要以InnoDB为主,MyISAM为辅,虽然好多的博文都说了数据库引擎,但是我还是要将自己最近的心得拿出来给大家分享一下。

一、数据库引擎是什么?有什么用?

   我认为最现实一点的就是面试mysql的时候必问,毕竟这个算是mysql的基础了,不扯了,说重点。

    当我们访问数据库的时候,不管是使用可视化工具还是sql命令又或者是应用程序访问,都是操作的数据库引擎,而并非是数据库文件,数据库引擎会将我们发出的一句句sql命令进行执行操作数据库文件,操作完成只会又将结果返回给你,所以对于数据库来说,数据库引擎就是sql解析器,对于我们来说其就是操作数据库的入口。

二、mysql数据库引擎都有那些?

常见到的就是InnoDB、MyISAM、BDB、Memory。其中InnoDB最为常见也是最为常用的。

InnoDB:最容易出现并发问题、最为容易发生死锁、锁的粒度最为低、使用最为复杂

MySAM:最不容易出现并发问题、不会发生死锁、所得粒度最高、使用最为简单

三、InnoDB和MyISAM区别?

1、事务:

      InnoDB支持事务

      MyISAM不支持事务

2、锁:

      InnoDB支持表锁和行锁,在执行不能够确定范围的sql的时候就会使用全表扫描,锁住全表(比如:like)

      MyISAM支持表锁,用户操作MyISAM的时候select、update、delete、insert都会自动加锁

3、外键

      InnoDB支持外键

      MyISAM不支持外键

4、文件存储方式

      InnoDB存储的时候索引和数据记录在同一文件中还有一个日志文件,InnoDB表的大小受限于操作系统,正因为这点才能够帮助我们更好的了解索引的数据结构

      MyISAM存储的时候又三个文件frm(存储表定义)、myd(存储表数据)、myi(存储表索引)

5、索引缓存

      InnoDB使用聚集索引,索引和问价都在同一文件中,不管是索引还是数据都是自己来管理

      MyISAM使用非聚集索引,索引和数据分开,只缓存索引,只能管理索引,在索引数据大于分配的资源时,会由操作系统来cache;数据文件依赖于操作系统的cache。

6、查找总行数count()

    MyISAM保存由表的总行数,如果select count(*) from table;会直接取出出该值

    InnoDB没有保存总行数,如果使用select count(*) from table;就会遍历整个表,

 

四、总结

    只有明白了数据库引擎才能够帮助我们更好的了解数据库的原理,毕竟数据库引擎是我们操作的入口,和我们的应用程序最为息息相关的。也是最为基础的知识。朋友们有什么感觉写的有什么的问题或者有什么不对的地方尽管提出来,及时进行回复和修改。

 

 

【MySQL 系列】MySQL 引擎篇 存储引擎是 MySQL 的组件,用于处理不同表类型的 SQL 操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。 阅读详情

相关推荐

告别ORB-SLAM2?手把手教你用OpenVSLAM在Ubuntu 20.04上跑通第一个SLAM Demo(含依赖库避坑指南)

本文详细介绍了如何在Ubuntu 20.04系统上从ORB-SLAM2迁移到OpenVSLAM,包括环境配置、依赖库安装、编译调整及性能优化。OpenVSLAM凭借其模块化设计和多相机支持,在SLAM领域展现出显著优势,适合机器人导航和AR应用开发。文章还提供了实用的避坑指南和进阶技巧,帮助开发者高效完成迁移。

weixin_42524499的博客 256

MySQL四大引擎,数据库管理,数据表管理,数据库账号管理

InnoDB引擎是MySQL默认的存储引擎。它支持事务和行级锁定,并具有高并发性和数据完整性保护的特性。InnoDB适用于具有复杂查询和高并发读写操作的应用程序。MyISAM。

djssubddbj的博客 2944

基于FaceX-Zoo实现的Face Mask Adding人脸戴口罩

人脸系列文章目录 文章目录人脸系列文章目录前言一、加口罩效果二、实现原理二、代码实现 前言 目前人脸加口罩均为在人脸位置贴图式的,非常不真实。前段时间京东开源一个基于PRnet实现的3D口罩拟合人脸,加口罩非常逼真,但是只是单独一个加口罩demo,没有完整的流程。于是本人结合人脸检测,关键点对齐。PRnet加口罩实现一个完整的加口罩流程。只需一个命令简单方便调用,实现人脸加口罩。 https://github.com/JDAI-CV/FaceX-Zoo 一、加口罩效果 下图可以看出效果还是非常逼真的

zengwb的博客 3391

【MySQL系列】- 常用MySQL存储引擎

数据库存储引擎是数据库底层软件组织,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引机制、锁定水平等功能。不同的存储引擎,都有其特定的功能及特定应用场景。

记录总结工作过往 5316

【opencv3 学习记录】第二章 读取显示保存视频

一:捕获视频函数 1.函数:cv2.VideoCapture(参数) 2.参数说明: (1)开启摄像头:参数一般为0,你可以通过设置成 1 或 者其他的来选择别的摄像头。 (2)从文件夹中获取视频:参数为字符串形式的文件路径 3.示例: cap = cv2.VideoCapture(0) #cap:存放参数 二:读取视频函数 1.函数:cap.read() 2.函数说明: (1)cap.read 中cap与捕获视频函数存放函数一致,可以自己命名.括号一般不用填写 (2)ret,f

m0_64448543的博客 3276

uniapp 记录运动轨迹 开发_智能手环穿戴设备APP开发解决方案

智能手环是一种穿戴式智能设备,是目前备受关注的科技产品。目前智能手环具有的功能有记录日常生活中的运动数据、移动轨迹,定位等,有些还可以进行睡眠质量的检测,并将这些数据传送至移动端如手机、平板等,可对数据进行分析,指导健康生活的作用。而智能手环开发方案就是将这些功能实现,将算法烧录到主控板上。智能手环都有哪些功能  1、记录运动数据  对于喜欢健身的用户来说,智能手环记录的运动数据功能...

weixin_39678493的博客 1764

mysql分析引擎_MySql之多种存储引擎分析和理解

昨个和一家面试官进行面试工作,面试官样子应该是项目经理级别,问到我一个问题:谈下MySql存储引擎的理解,例如:InnoDB?说实话,我蒙了,一直都是问Java相关的底层数据结构什么的,突然来个这个,学识浅薄。结束后赶紧补课:首先就先说下什么是存储引擎:存储引擎就是存储数据,建立索引,更新查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的。所以存储引擎也可以被称作为“表类型”对于其他数据...

weixin_34547883的博客 195

WinFrom真入门(1)——Windows窗体应用概念

用Winform开发的桌面程序,是在Windows操作系统上运行的,这个不用多说。窗体(Form)的作用‌:窗体是用户交互的容器,承载按钮、文本框等控件,构成应用程序的界面‌。在Windows操作系统中,窗体(窗口)所处可见,例如: 一个标准的窗体其实就是一块矩形区域,客户区域指的是窗口内部区域。除去标题兰和边框外的区域可视为内部区域,称为客户区域。我们开发人员可以在窗口的客户区域中放置控件,也可以在其中绘制出咱们所需要的图形。WinForm程序的项目的结构,如下图: Main()方法是程序的入口,这几行代

ByteGeek 1637

mysql数据库引擎有哪些

MySQL是一个开源的关系型数据库管理系统(RDBMS),它支持多种数据库引擎。这些数据库引擎可以用于存储、管理和操纵数据。 MySQL支持以下数据库引擎: InnoDB: 这是MySQL的默认数据库引擎,它是一种事务安全的引擎,支持外键约束、行级锁定和崩溃恢复能力。 MyISAM: 这是MySQL的传统数据库引擎,它提供了较快的查询性能,但是不支持事务处理和外键约束。 MEMORY: 这是...

weixin_35756690的博客 1995

QT下利用FFTW实现功率谱密度分析(周期图法)

写在前面 出于项目需求,需要在QT的msvc 2015编译环境下实现功率谱密度估计。 所以这个需求很直接的关键词就是 1. C++ 2. QT 3. 傅里叶变换 4. 功率谱密度估计 但是在网上搜索了很久,没有一个非常直接的答案。所以我觉得很有必要写一篇文章来说明,在QT msvc2015 32bit环境下如何实现功率谱密度估计。 本文并没有经过严格编辑,但代码是已经可以跑通的,如...

李时珍食疗志的博客 5224

RK3399平台入门到精通系列讲解 - 总目录

欢迎大家来到内核笔记的《RK3399平台开发入门到精通系列讲解》,开始前博主先列出RK3399平台学习的大纲,同时这也可以作为大家学习RK3399内核与安卓框架的参考。下面蓝字都是传送门,点击进入即可:...

内核笔记 10万+

MySQL 存储引擎进化史及当前主流引擎分析

当前最新版本(MySQL 8.0)中,InnoDB 已整合了原 MyISAM 的优势功能(如全文检索),使得新项目几乎没有理由选择其他引擎。文件组成:.frm(表结构)、.MYD(数据)、.MYI(索引)优势:高压缩比(比 InnoDB 节省 50%空间):Oracle 仍在大力投入 InnoDB 开发。文件组成:.frm + .ibd(表空间)使用比例:约 1-2% (主要在大厂)2005年被 Oracle 收购。2006年被 Oracle 收购。完整的事务支持 (ACID):针对云环境的存储引擎优化。

hxsln11的博客 998

FH8626V100之开发环境搭建

FH8626V100是富瀚微出的一款带摄像头的方案,开发工具在Linux 上进行。版本 Ubuntu 20.04 64位。

xue_nuo的博客 1万+

Mysql常用引擎分析

写在前面: 刚才在写这篇文章之前,一直在思考,一个数据库为什么会有不同的存储引擎。 世界上没有一种东西是完美的,否则也不会出现那么多相近却又不同的产品了, 举个栗子,好比动态语言和静态语言,又如一句古话“鱼和熊掌不可兼得”。 所以MySQL为了满足不同业务的,不同场景,不同使用者,推出了不同的存储引擎,在现在这个“百花齐放”的年代,我只对MySQL最常用的存储引擎进行介绍: 结构 ...

tangyaya8的博客 675

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

MySQL 存储引擎深度对比分析

MySQL 作为全球最受欢迎的关系型数据库管理系统之一,支持多种**存储引擎**(Storage Engine),每种存储引擎都有其独特的特点和适用场景。在实际开发和数据库优化过程中,合理选择存储引擎可以显著提升性能。本文将深入分析 MySQL 常见存储引擎的特点、存储结构、索引机制、事务支持、适用场景及其优缺点,帮助大家在不同业务需求下做出最佳选择。

784

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MySql数据库引擎分析

作为程序开发人员,mysql的使用肯定是我们的家常便饭了。但其中蕴含的大量机制和优化策略是我们需要不断学习和探索的。     今天,我们来分析和讨论关于mysql的引擎。     1、各类引擎简介:     首先,在安装数据库时,默认会应用MyISAM引擎,此时的mysql同时支持ISAM、MyISAM和HEAP。而另外的两种类型,INNODB和BERKLEY(BDB),也可以在需要时,进行

劝学 1129

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MySQL存储引擎分析

什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。 MySQL默认配置了许多不同的存储引擎,可以预先设置或者在M...

松鼠豪的坚果 410

MySQL初始化引擎_MySQL中innodb引擎分析(初始化)

MySQL的存储引擎是以插件形式工作的,这应该是MySQL的一大特色了吧!依据《深入理解MySQL》的内容,5.1版本号时存储引擎的插件化都还不是彻底,确切的说是刚加入的特性。为MySQL加入一个存储引擎时,须要更改一些上层代码,零散的更改本来就有点麻烦,同一时候project也要又一次编译一次。我听别人说,已经能够不改C/C++代码就直接加入引擎了。这种话,折腾存储引擎的话就更方便了!这段代码来...

weixin_34205994的博客 296

mysql源码分析——InnoDB引擎启动分析

对InnoDB的启动进行一个基本的流程分析

fpcc的专栏 2263

mysql数据库引擎分析

如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。MyISAM拥有较高的插入、查询速度,但不支持事务,不支持外键。InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。它对表的大小有要求,不能建立太大的表。......

qq_36521848的博客 365

mysql 数据分析引擎_MYSQL数据库引擎分析

1.什么是存储引擎MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。所以我认为,存储引擎就是那些具体去干存储这件事情的程序 2.如何查看mysql的存储引擎一般情况下,mysql会默认提供多种存储引擎,你可以通过下...

weixin_35958479的博客 234

Mysql:三种存储引擎优缺点分析

存储引擎:MYSQL默认的是INNODB存储引擎,主要了解INNODB,其次就是MYISAM、Memory 存储引擎各自特点: 1.INNODB: 该存储引擎提供具有提交,回滚、崩溃恢复能力事务安全机制、支持外键、自动增长列等功能, 索引采用的是聚集索引 索引和数据存放在同一个文件中,所以INNODB存储引擎的数据存在磁盘上就两个文件。文件名和表名是相同的,扩展名分别为:....

颠沛的小丸子 1297

mysql存储引擎基于_基于Mysql存储引擎的深入分析

MySQL有很多种存储引擎,针对不同的应用,可以为每张表选择合适的存储引擎,这样有助于提升MySQL性能。创建新闻表news:CREATE TABLE `sandbox`.`news`(`id` INT NOT NULL AUTO_INCREMENT ,`name` VARCHAR(45) NULL ,`content` VARCHAR(45) NULL ,`created` VARCHAR(4...

weixin_32871457的博客 122

MySQL高级——存储引擎、索引介绍、EXPLAIN性能分析

MySQL高级——存储引擎、索引介绍、EXPLAIN性能分析一、MySQL逻辑架构二、存储引擎三、索引介绍3.1 SQL性能下降的原因3.2 常见通用的join查询3.2.1 SQL执行顺序3.2.2 七种JOIN理论3.3 索引简介3.3.1 索引是什么?3.3.2 索引的优势和劣势3.3.3 索引的分类3.3.4 索引数据结构3.3.5 适合创建和不适合创建索引的情况四、EXPLAIN性能分析4.1 EXPLAIN简介4.2 EXPLAIN字段 一、MySQL逻辑架构 Connectors:指的是不

weixin_44630656的博客 311

【Mysql】MySQL体系结构,InnoDB、MyISAM存储引擎,索引结构、分类、语法、性能分析

MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示 :左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。

qq_60969145的博客 1260

MySQL的存储引擎的使用场景分析

前言 MySQL在我们日常开发中经常使用存储数据使用, 但是出现问题优化和存储引擎的选择适合我们实际业务场景,就要对MySQL的存储索引的原理要有所了解。 正文 一, MySql的存储引擎介绍 ① InnoDB存储引擎 InnoDB存储引擎支持事务,主要面向在线事务处理(OLTP)方面的应用。其特点是行锁设计,支持外健,并支持类类于Oracle的非锁定读,即默认情况下读取存储不会产生锁。MySQ...

永远积极向上、永远热泪盈眶、永远豪情满怀、永远坦坦荡荡 1113
上一篇: SpringBoot1.5+整合Velocity(不降低SpringBoot版本)
下一篇: mysql之事务讲解
JavaWeb_Hao
博客等级 码龄9年 21粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值