MySql数据库表类型MYISAM与InnoDB的区别
InnoDB与Myisam的六大区别
MyISAM | InnoDB | |
构成上的区别: |
每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。
.frm文件存储表定义。 数据文件的扩展名为.MYD (MYData)。 索引文件的扩展名是.MYI (MYIndex)。 |
基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB |
事务处理上方面: | MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持 | InnoDB提供事务支持事务,外部键等高级数据库功能 |
SELECT UPDATE,INSERT,Delete操作 |
如果执行大量的SELECT,MyISAM是更好的选择 |
1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表
2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。 3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用 |
对AUTO_INCREMENT的操作 |
每表一个AUTO_INCREMEN列的内部处理。
MyISAM为INSERT和UPDATE操作自动更新这一列。这使得AUTO_INCREMENT列更快(至少10%)。在序列顶的值被删除之后就不能再利用。(当AUTO_INCREMENT列被定义为多列索引的最后一列,可以出现重使用从序列顶部删除的值的情况)。 AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引 更好和更快的auto_increment处理 |
如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。
自动增长计数器仅被存储在主内存中,而不是存在磁盘上 关于该计算器的算法实现,请参考 AUTO_INCREMENT列在InnoDB里如何工作 |
表的具体行数 |
select count(*) from table,MyISAM只要简单的读出保存好的行数,注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的 | InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行 |
锁 |
表锁 |
提供行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECTs),另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表, 例如update table set num=1 where name like “%aaa%” |
转载于:https://www.cnblogs.com/wicub/p/5291631.html
MySql数据库表类型MYISAM与InnoDB的区别相关推荐
- mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别
MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...
- mysql myisam 支持事务吗_第三章(附)mysql表类型MyISAM和InnoDB区别(决定了是否支持事务)...
mysql表类型MyISAM和InnoDB区别 MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问 ...
- MySQL数据库中的MyISAM和InnoDB存储引擎对比
一.InnoDB和MylSAM存储引擎对比 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访 ...
- mysql数据库表类型设置_mysql数据库表的类型介绍
目录 前言 之前我们讲了下载安装数据库,还有如何卸载(虽然直接重装系统就好) 那么现在让我们来讲讲 """ 1.数据库与表的剩余操作 编码配置.引擎介绍 2.数据库字段的 ...
- unicode表_Python数据库操作 Mysql数据库表引擎与字符集#学习猿地
# Mysql数据库表引擎与字符集 ![](./imgs/752951346A5F4E7EBDE362FA97107707.png) ### 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是 ...
- Mysql存储引擎详解(MyISAM与InnoDB的区别)
Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...
- MySQL存储引擎中MyISAM和InnoDB区别
转载自 MySQL存储引擎中MyISAM和InnoDB区别 MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应 ...
- 7.Mysql数据库表引擎与字符集
7.Mysql数据库表引擎与字符集 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送 一段文本(MySQL语句),服务器进 ...
- MySQL的表类型和存储引擎
MySQL的表类型由存储引擎(Storage Engines)决定,类型包括MyISAM.innoDB.BDB等. 常用的存储引擎 MySQL 数据表主要支持六种类型 ,分别是:BDB.HEAP.IS ...
最新文章
- 刚刚,蚂蚁金服荣膺“中国金融大数据领军企业”称号
- python输出键值列表_Python 键值分组或分区数据
- DCMTK:OFOptional的单元测试
- 【图像超分辨率】Perceptual Losses for Real-Time Style Transfer and Super-Resolution
- 用了都说好的SCI在线绘图工具来了~~~~~~~
- Linux系统编程3:基础篇之详解Linux软件包管理器yum
- MAC下MySQL启动不了怎么办?
- 基于scikit-learn的SVM实战
- VS2008下改变项目的默认属性
- python多态_python 多继承及多态
- 死磕 Framework准没错,大把的高薪岗位等着你~
- 建服务器数据中心,如何构建一个服务器数据中心
- 多旋翼无人机技术详解
- [转]网易新闻客户端为什么开始在北京市区的地铁、公交站牌大批量投放广告?...
- idea如何全局搜索关键字_IntelliJ 的搜索和全局搜索怎么用
- 分享个md生成思维导图的在线工具
- TFTP文件传输协议
- java gbk转机内码_Java实现的UTF-8,GBK,Unicode编码相互转换的代码
- 典型相关分析介绍及python实现
- 【BZOJ4455】【UOJ185】【ZJOI2016】小星星(树形DP,容斥原理)
热门文章
- 内部类详解————匿名内部类
- oracle用户密码复杂度查询,11gR2 Database用户密码复杂度验证
- cmd查询Oracle中的表 成表格显示,oracle如何通过cmd导出某个用户下的所有表
- Java反射 Constructor类
- eclipse run on server 点不了finish_分享点经验 | springboot入门及编码
- 摄像头夜间拍摄画面有拖影_让客厅秒变健身房,OPPO智能电视R1+摄像头上手体验...
- java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...
- java在原数组中追加一个元素
- 填充table_Excel Power Query | 向下填充的逆过程
- mirna富集分析_经验之谈丨生信分析文章套路原来这么简单!