InnoDB引擎与MyIASM的一点总结

InnoDB引擎:

提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别

提供了行级锁和外键约束。

它的设计的目标是处理大容量数据库系统,用于缓冲数据和索引。

不支持FULLTEXT类型的数据,没有保存表的行数,当select count*from table  时需要扫描全表。

使用数据库事务时,该引擎是首选。

由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用InnoDB效率会提升。

行级锁也不是绝对的, 如果只在执行一个SQL语句时不能确定要扫描的范围,InnoDB同样会锁定全表。

 

MyIASM引擎:

没有提供对数据库事务的支持,也不支持行级锁和外键

因此在insert update时需要锁定全表,效率会降低。

存储了表的行数,当select count(*) from table 时只需要直接读取已经保存好的值而不用扫描全表。

如果读操作远远多于写操作且不需要数据库事务的支持,那么MyIASM也是很好的选择。

两种引擎的比较:

大尺寸的数据集趋向于选择InnoDB引擎,因为它支持事务处理和故障恢复。数据库大小决定了故障恢复的时间长短。InnoDB引擎可以利用事务日志进行数据恢复。

主键查询在InnoDB引擎下会相当快

大批量的insert语句(在每个insert语句中写入多行,批量插入)在MyISAM下会快一点。

Update语句在InnoDB下会更快一点。

 


 

 数据结构:

B-Tree

 

每个节点最多可以有d个分支,d成为B-Tree的度

B-Tree中的元素都是有序的,比如图中元素7左边的指针指向的节点中的元素都小于7,而元素7和16之间的指针指向的结点中的元素都处于7和16之间。正是满足这样的关系,才能实现高效的查找:首先从根节点进行二分查找,找到就返回对应的值,否则就进入相应的区间结点递归查找,直到找到对应的元素或找到null指针,找到null指针则表示查找失败。时间复杂度为O(logN).

 

 

 

 

 

 

B+Tree:

 

 

 

 

 

B+tree内部节点不存储数据,只存储指针,而叶子节点则只存储数据,不存储指针。

MyISAM的 B+Tree的叶子节点上的data,并不是数据本身,而是数据存放的地址。

 

InnoDB引擎的索引结构同样是B+Tree,但InnoDB的索引文件本身就是数据文件,即B+Tree的数据区域存储的就是实际的数据,这种索引就是聚簇索引。

聚簇索引的数据的物理结构存放顺序与索引顺序是一致的,即:只要索引的事相邻的,那么对应的数据一定也是相邻地存放在磁盘上。

转载于:https://www.cnblogs.com/xuesheng/p/7928962.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++总结笔记(九)—— 多态

文章目录一、多态是什么?二、使用步骤2.1. 静态多态2.1.1 函数重载2.1.2 模板2.2.动态多态2.2.1 示例2.2.2 原理分析总结一、多态是什么? 多态是面向对象的语言中都必须掌握的特性,其概念简单讲就是对同一种特性的方法有不同的实现功能&…

组件局域网中的无集线器、Windows XP、Windows 7、Windows 8的对等网

为什么要用对等网? 答:对等网采用分散管理的方式,网络中的每台计算机既作为客户机又可作为服务器来工作,每个用户都管理自己机器上的资源。 组建局域网中无集线器的对等网 组建局域网中Windows XP的对等网 组建局域网中Windows 7的…

阿里巴巴将赴NIPS 2017 3大事业部联袂展示AI全技能

被誉为国际顶级的机器学习和神经网络学术会议NIPS 2017将于12月4日-9日在美国加州长滩市举行。在本届会议上,阿里巴巴除有两篇论文入选Workshop并进行Oral和Poster形式报告外,3大技术事业部将连续3天(5日-7日)在阿里展区举行多场技…

360安全卫士加速球误关闭某个应用软件

近期因为工作原因须要使用金山快盘。但因为之前电脑上安装了360安全卫士,在使用加速球功能的时候,会出现,误关闭金山快盘的操作,怎么避免呢? 1、打开360主界面。找到安全防护中心,例如以下图: 2…

20145238-荆玉茗 《信息安全系统设计基础》第7周学习总结

20145238 《信息安全系统设计基础》第7周学习总结 教材学习内容总结 存储器系统 : 存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。 1、RAM随机访问存储器 分类:SRAM(静态)、DRAM(动态)特点&…

关于两个jar包中存在包名和类名都完全相同的jar包冲突问题

2019独角兽企业重金招聘Python工程师标准>>> 最近弄webservice&#xff0c;我使用的jdk自带的wsimport工具来生成客户端代码&#xff0c;发现生成的代码具有编译错误&#xff0c;错误描述如下&#xff1a; The method getPort(QName, Class<T>) in the type S…

const和define 区别

1&#xff1a; 编译器处理不同 define宏是在预处理阶段展开&#xff0c;const常量是编译运行阶段使用。 2&#xff1a;类型和安全检查不同 const常量有数据类型&#xff0c;而宏常量没有数据类型&#xff0c;仅仅是展开。编译器可以对前者进行类型安全检查&#xff0c;而对后者…

【项目实战】——Python打包正装换底色代码为exe文件(可在其他无Python环境下运行)

目录 1.安装pyinstaller 2.生成.exe文件 方法1&#xff1a; 方法2&#xff1a; 方法3&#xff1a; &#xff08;1&#xff09;使用命令行窗口进入项目的根目录 &#xff08;2&#xff09;在改目录下执行pyi-makespec main.py&#xff08;main.py是你的主入口文件&#x…

安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(三)码农网

12. 安装 Apache Tomcat Tomcat 是由 Apache 设计的用来运行 Java HTTP web 服务器的 servlet 容器。按照下面的方法安装 tomcat&#xff0c;但需要指出的是安装 tomcat 之前必须先安装 Java。 # yum install tomcat 安装 Apache Tomcat 安装完 tomcat 之后&#xff0c;启动 to…

QT5.14.2基于PCL1.11.1显示点云(基于Windows VS2019开发环境)

文章目录一、安装1.1 PCL安装1.2 QT安装1.3 VTK编译二、程序配置1. 基于mscv创建QT的程序2. 配置QT工程文件和依赖项3. 编写点云显示的小程序总结一、安装 1.1 PCL安装 PCL1.11.1库的安装网上教程很多&#xff0c;推荐一个很好的教程&#xff1a; Win10 系统下 VisualStudio2…

Spring学习笔记—最小化Spring XML配置

自动装配(autowiring)有助于减少甚至消除配置<property>元素和<constructor-arg>元素&#xff0c;让Spring自动识别如何装配Bean的依赖关系。 自动检测(autodiscovery)比自动装配更进了一步&#xff0c;让Spring能够自动识别哪些类需要被配置成Spring Bean&#xf…

【数据结构】——快速排序

目录 一、代码 二、复杂度&#xff1a;O(nlog(n)) 三、快速排序的劣势 视频参考链接&#xff1a;https://www.bilibili.com/video/BV1mp4y1D7UP?p17 一、代码 思想&#xff1a;假设是对一个list进行排序 1、选取第一个元素作为p元素&#xff1b; 2、将p元素归位&#xff0…

读取数据库信息构建视图字段的备注信息,方便程序代码生成

在很多情况下&#xff0c;我们开发都需要有一个快速的代码生成工具用来提高开发效率&#xff0c;代码生成工具很多信息都是读取数据库的表、视图等元数据进行对象表信息的完善&#xff0c;有了这些信息&#xff0c;我们就可以在普通的实体类代码里面添加属性字段的中文注释&…

微博分享错误

昨天再做这块的时候&#xff0c;不知怎么的点击之后什么反应都没有&#xff0c;程序也没有崩&#xff0c;日志倒是输出了这个错误 解决办法&#xff1a;打开你写分享的代码跟API文档对比一下创建文本、图片或者网页的时候是不是少写了那个属性&#xff0c;我这里是在创建网页的…

代码生成工具之界面快速生成

界面开发&#xff0c;无论对于Web开发&#xff0c;还是Winform开发&#xff0c;都需要耗费一定的时间&#xff0c;特别对于一个数据库字段比较多的界面&#xff0c;一般就需要在编辑界面上摆的更多的控件来做数据显示&#xff0c;每次碰到这个&#xff0c;都有点头痛&#xff0…

javascript - 封装原生js实现ajax

1 /*2 * ajax方法3 */4 var Ajax function() {5 var that this;6 //创建异步请求对象方法7 that.createXHR function() {8 if(window.XMLHttpRequ…

QT对象树、信号和槽机制

文章目录一 、对象树是什么&#xff1f;二、信号和槽的基本概念2.1 信号2.2 槽2.3 松散耦合2.4 特点三、示例总结一 、对象树是什么&#xff1f; 对象树是由父类和若干子类对象组成&#xff0c;而子类也可以由若干孙类。 QT中的对象树是以QObject为起始父类来完成树的构建的&a…

【数据结构】——归并排序

目录 一、代码 二、随笔 一、代码 归并排序的主要思路&#xff1a;将两个有序的子列表归并为一个有序的大列表 #归并函数&#xff0c;假设li是由左右两个有序的子列表组成,假设两个子列表都是从小到大排好序的列表 def merge(li,low,mid,high)::param li: 由左右两个有序的子列…

开发发布npm module包

开发发布npm module包 问题 在项目开发过程中&#xff0c;每当进入一个新的业务项目&#xff0c;从零开始搭建一套前端项目结构是一件让人头疼的事情&#xff0c;就要重新复制一个上一个项目的前端框架和组件代码库。其中很多功能的模块组件都要重复拷贝&#xff0c;可以统一将…

如何使用ATS提高应用的安全性

App Transport Security&#xff0c;简短的说就是ATS&#xff0c;是iOS9和OS X El Capitan的一个新特性。App Transport Security 的目标是提高Apple 操作系统的安全性以及在此操作系统上运行的任何应用的安全性。 基于HTTP传输数据的网络请求都是明文。开启App Transport Secu…