MySQL中InnoDB与MyISAM的区别
二者的区别1、InnoDB支持事务而MyISAM不支持事务由于二者存储数据方式的区别导致MyISAM无法实现行锁只能支持表锁因此MyISAM不支持事务这也是MySQL将默认搜索引擎由MyISAM变为InnoDB的主要原因。2、InnoDB支持外键而MyISAM不支持因为在早期数据库设计中数据库的设计与Excel表的功能差不多只是用来存数据的。 所以mysiam不支持外键。对于一个包含外键的InnoDB表转化为MyISAM表会报错。3、InnoDB是聚簇索引而MyISAM是非聚簇索引InnoDB使用BTree作为索引结构数据文件是和主键索引绑在一起的表数据文件本身就是按BTree组织的一个索引结构必须要有主键通过主键索引效率很高。但是辅助索引需要两次查询先查询到主键然后再通过主键查询到数据。因此主键不应该过大因为主键太大其他索引也都会很大。而MyISAM是非聚集索引也是使用BTree作为索引结构索引和数据文件是分离的索引保存的是数据文件的指针。主键索引和辅助索引是独立的。也就是说InnoDB的B树主键索引的叶子节点就是数据文件辅助索引的叶子节点是主键的值而MyISAM的B树主键索引和辅助索引的叶子节点都是数据文件的地址指针。4、InnoDB不保存表的具体行数而MyISAM用具体的变量表示表中的行数InnoDB不保存表的具体行数执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数执行上述语句时只需要读出该变量即可速度很快注意不能加有任何WHERE条件。这是因为InnoDB的事务特性在同一时刻表中的行数对于不同的事务而言是不一样的因此count统计会计算对于当前事务而言可以统计到的行数而不是将总行数储存起来方便快速查询。除此以外如果索引并没有完全处于InnoDB维护的缓冲区Buffer Pool中count操作会比较费时。5、InnoDB支持行锁、表级锁而MyISAM支持表锁因为Myisam B树叶子结点存储索引数据在磁盘中的位置同时有多个B树但是并没有聚集索引和辅助索引的概念可以锁住一颗B树中的某一个数据但是无法锁住其他B树的行数据所以不能实现行级锁。对于Innodb查询的时候如果使用辅助索引之后也要进行一个回表查询再到聚集索引B数中找到行数据所以很容易实现行级锁。6、InnoDB表必须有唯一索引(如主键)而Myisam可以没有用户没有指定的话会自己找/生产一个隐藏列Row_id来充当默认主键7、Innodb存储文件有frm、ibd而Myisam是frm、MYD、MYIInnodb中frm是表定义文件ibd是数据文件而Myisam中frm是表定义文件myd是数据文件myi是索引文件8、Innodb不支持全文索引而MyISAM支持全文索引在涉及全文索引领域的查询效率上MyISAM速度更快高但是在5.7版本以后的InnoDB支持全文索引了9、 MyISAM表格可以被压缩后进行查询操作搜索引擎的选择1、是否要支持事务如果要请选择innodb如果不需要可以考虑MyISAM2、 如果表中绝大多数都只是读查询可以考虑MyISAM如果既有读也有写请使用InnoDB。3、 系统奔溃后MyISAM恢复起来更困难能否接受4、 MySQL5.5版本开始Innodb已经成为Mysql的默认引擎(之前是MyISAM)说明其优势是有目共睹的如果你不知道用什么那就用InnoDB至少不会差。

相关新闻

【计算机毕业设计单片机案例】基于 STM32 的可阈值自定义户外安全监测系统设计 基于 STM32 的老年人户外智能防跌倒防护终端设计(013506)

【计算机毕业设计单片机案例】基于 STM32 的可阈值自定义户外安全监测系统设计 基于 STM32 的老年人户外智能防跌倒防护终端设计(013506)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/11/11 0:35:07 阅读更多 →
发数据接数据端口 查询命令

发数据接数据端口 查询命令

netstat -tnlp | grep 13306netstat -anlp | grep 13306

2026/10/23 23:55:56 阅读更多 →
大学生HTML期末大作业——HTML+CSS+JavaScript传统文化(服装)

大学生HTML期末大作业——HTML+CSS+JavaScript传统文化(服装)

HTMLCSSJS【传统文化】网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计💥 文章目录一、🏁 网站题目二、🚩 网站描述三、🎌 网站介绍四、🏴 网站效果五、🏳️ 网站代码六、&#x1f3f3…

2026/11/7 1:25:03 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/10 23:32:01 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/10 23:32:03 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/10 2:03:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/10 16:14:15 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/10 12:51:50 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/10 23:32:10 阅读更多 →

日新闻

周新闻

月新闻