暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql的学习策略一(MyISAM vs InnoDB)

北漂之路之程序人生 2021-11-23
302

1.事务处理上方面:

MyISAM 强调的是性能,查询的速度比 InnoDB 类型更快,但是不提供事务支持。InnoDB 提供事务支持事务。

2.外键:MyISAM 不支持外键,InnoDB 支持外键。

3.锁方面的介绍:

MyISAM 只支持表级锁,InnoDB 支持行级锁和表级锁,默认是行级锁,行锁大幅度提高了多用户并发操作的性能。innodb 比较适合于插入和更新操作比较多的情况,而 myisam 则适合用于频繁查询的情况。另外,InnoDB 表的行锁也不是绝对的,如果在执行一个 SQL 语句时,MySQL 不能确定要扫描的范围,InnoDB 表同样会锁全 表,例如 update table set num=1 where name like “%aaa%”。 

4.全文索引:

MyISAM 支持全文索引, InnoDB 不支持全文索引。innodb 从 mysql5.6 版本开始提供对全文索引的支持。

5.表主键的区别:

MyISAM:允许没有主键的表存在。

InnoDB:如果没有设定主键,就会自动生成一个 6 字节的主键(用户不可见)。

6.表的具体行数问题:

MyISAM:select count() from table,MyISAM 只要简单的读出保存好的行数。因为MyISAM 内置了一个计数器,count()时它直接从计数器中读。

InnoDB:不保存表的具体行数,也就是说,执行 select count(*) from table 时,InnoDB要扫描一遍整个表来计算有多少行。


博客地址:https://mp.csdn.net/mp_blog/creation/editor/121493131



文章转载自北漂之路之程序人生,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论