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 原理分析总结一、多态是什么? 多态是面向对象的语言中都必须掌握的特性,其概念简单讲就是对同一种特性的方法有不同的实现功能&…

[转]c++类的构造函数详解

c构造函数的知识在各种c教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c编程经验总结了一下c中各种构造函数的特点,并附上例子,希望对初学者有所帮助。 c类的构造函数详解 …

结构体对齐问题

#pragma (1)typedef struct {};#pragma ()#pragma pack(1) 的意义是什么skypxl | 浏览 27771 次发布于2009-10-01 16:38最佳答案设置结构体的边界对齐为1个字节,也就是所有数据在内存中是连续存储的。比如你在C语言中定义下面这样的结构体:struct s {cha…

【机器学习】——纯Python建立BP模型

参考:https://blog.csdn.net/michael_f2008/article/details/103715699 https://developer.aliyun.com/article/614411 import pandas as pd import numpy as np import datetime from sklearn.utils import shuffle# 1.初始化参数 def initialize_parameters(n_x, n_h, n_y…

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

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

datatable绑定comboBox显示数据[C#]

实现功能:datatable绑定comboBox,在下拉菜单中显示对应数据 实现方法:    //dataSet 转 dataTable    1、生成datatable,并为combox绑定数据源:comboBox1.DataSource dt1;comboBox1.DisplayMember "用户编码"…

C++总结笔记(十)——堆区内存开辟数组和二级指针

文章目录一、堆区开辟数组1. 数组指针与指针数组的区别2. 1维数组3. 2维数组二、二级指针一、堆区开辟数组 1. 数组指针与指针数组的区别 数组指针是指指向数组的指针,它的本体是一个指针, 声明指针变量的时候一般用括号,因为括号的优先级高于[]&#…

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

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

【图像处理】——Python实现图像特征提取BP神经网络实现图像二分类

目录 一、图像特征提取 二、BP实现图像二分类 1、输入层、隐层、输出层结点个数设置

mysql sql语句大全

1、新建用户:>CREATE USER name IDENTIFIED BY ssapdrow; 2、更改密码: >SET PASSWORD FOR namePASSWORD(fdddfd); 3、权限管理 >SHOW GRANTS FOR name; //查看name用户权限 >GRANT SELECT ON db_name.* TO name;    //给name用户db_…

C++总结笔记(十一)—— Lambda表达式的应用

文章目录一、Lambda表达式是什么?二、程序示例1. 在STL中的使用一、Lambda表达式是什么? Lambda表达式时C11引入的语法,本质上是一个匿名函数,用[ ] () {}三个符号组成表达式。 格式为:[capture list] (params list) …

【文件处理】——字典写入json文件或TXT文件,读取文件中的字典TypeError: Object of type ‘ndarray‘ is not JSON serializable错误解决方法

目录 一、将字典写入json文件 二、json文件中读取字典 三、将字典写入TXT文件中 四、从TXT中读取字典 五、解决字典含数组存入json文件失败的方法 1、存入前将数组变成列表 2、扩展类方法 一、将字典写入json文件 import jsontest_dict {version: "1.0",exp…

js一些实用例子

1.获取焦点选中文本内容 $("#id").focus(function(){ this.select(); }); 2.表单提交方式 A.自动提交 setTimeout(function(){表单对象.submit();},2000); B.onclick事件提交(链接提交) <input type"submit" value"提交" οnclick"retur…

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

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

C++STL总结笔记(一)—— 容器和容器适配器

文章目录前言一、概念1.1 顺序容器1.2 容器适配器1.3 关联容器二、程序示例1. vector和Set自定义数据类型的访问2.vector容器嵌套3.list容器排序4.pair对组的使用总结前言 STL是C中的基于数据结构和算法的标准模板库&#xff0c;可以大量节约系统开发时间&#xff0c;增加程序…

【图像处理】——比特平面原理和实现方法(全网较全面,含所有比特位图的分层方法)

目录 一、比特平面 1st比特平面:括号里面的为比特值,前面的是原图像中对应要变为0的像素值

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

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

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

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

限制文本框只能输入数字和小数点

<input type"text" class"NumText" placeholder"只能输入数字&#xff08;可含有小数点&#xff09;"/><style> .NumText{width:200px;} .NumText::-webkit-input-placeholder{color:#F1923C;} .NumText:-moz-placeholder{…