只有破碎的心才有伤人的棱角。 收藏本站
登陆 / 注册 搜索

阅读: 290   回复: 2

[# 其他] InnoDB 与 Myisam 的六大区别

小执念 古黑浩劫论坛大牛 2020-5-15 15:06 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
区别MyISAMInnoDB
构成上的区别每个 MyISAM 在磁盘上存储成三个文件, 第一个文件的名字以表的名字开始.

.frm 文件存储表定义。

数据文件的扩展名为 .MYD (MYData)。

索引文件的扩展名是 .MYI (MYIndex)。
基于磁盘的资源是 InnoDB 表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB
事务处理上方面MyISAM 类型的表强调的是性能,其执行数度比 InnoDB 类型更快,但是不提供事务支持InnoDB 提供事务支持事务,外部键(foreign key)等高级数据库功能
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 值可用 ALTERTABLE 或 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%"


屋顶,数星星 「出类拔萃」 2020-5-15 15:06 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

除了友谊的小船说翻就翻、爱情的巨轮说沉就沉;
还有青春的小鸟说飞就飞、可爱的宝宝说污就污;
挺直的爷们说弯就弯、好好的姑娘说胖就胖;
刚饱的肚子说饿就饿、刚取的人民币说没就没;
刚补的膜说破就破 ....
小执念 古黑浩劫论坛大牛 2020-5-15 15:19 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
什么是事务?

事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。程序和事务是两个不同的概念。一般而言:一段程序中可能包含多个事务。(说白了就是几步的数据库操作而构成的逻辑执行单元)

事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性也简称ACID性。

(1)原子性:事务是应用中最小的执行单位,就如"原子是构成自然界各种元素的基本单位",具有不可再分的特征一样。事务是应用中不可再分的最小逻辑执行体。(最小了,不可再分了)

(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。一致性是通过原子性来保证的。(说罢了就是白狗变成了黑狗,不能出现斑点狗!)

(3)隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的。也就是说:并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间不能相互影响。(说白了,就是你做你的,我做我的!)

(4)持续性:持续性也称为持久性,指事务一旦提交,对数据所做的任何改变,都要记录到永久存储器中,通常是保存进物理数据库。(说白了就是一条道跑到黑)

原文:https://www.cnblogs.com/zhuifeng-mayi/p/9270321.html
您需要登录后才可以回帖 登录 | 注册账号  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2020-8-12 22:38 , Processed in 0.028837 second(s), 20 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表