博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql存储引擎MyIsAM和InnoDB区别
阅读量:6413 次
发布时间:2019-06-23

本文共 762 字,大约阅读时间需要 2 分钟。

Mysql 数据库中,最常用的两种引擎是innordb 和myisam。InnoDB 是Mysql 的默认存储引擎。

两者的区别:

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://www.cnblogs.com/loren-Yang/p/7577262.html

你可能感兴趣的文章
Android onMeasure方法介绍
查看>>
微信公众号搭建营销型房产项目程序后台开发
查看>>
git使用笔记
查看>>
无锁数据结构
查看>>
RabbitMQ消息队列:任务分发机制
查看>>
substr和substring的区别
查看>>
String.Format用法
查看>>
WARNING(ORCAP-1589): Net has two or more aliase...
查看>>
is translated here but not found in default local
查看>>
new Function()创建函数
查看>>
【转】java NiO 学习笔记
查看>>
MySQL的变量查看和设置
查看>>
Android NDK配、编译、调试
查看>>
长平狐 memcached源代码阅读笔记(二):网络处理部分
查看>>
android onNewIntent
查看>>
实战利用腾讯企业邮箱zabbix3.x邮件(微信/QQ/短信)告警详细配置
查看>>
干掉运营商:神奇盒子让你自建GSM 网络
查看>>
配置企业级wlan
查看>>
iOS各种调试技巧豪华套餐(上)
查看>>
MCSegmentedControl
查看>>