从管理员角度分析:MySQL表引擎中MyISAM和InnoDB的对比

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

题记:有些问题只是常识,只是在某些情景下“心急”的管理员可能会忽略这些常识,当然了这也是很多人都会犯的错误。谨以此文记录这件刚才发生的囧事。

常用的MySQL表引擎有不少,但最常用的就是MyISAM和InnoDB,这两者的区别有很多网站上都有很好的文章去介绍,再此仅列出URL就不再赘述。

  1. MySQL: InnoDB 还是 MyISAM?:http://coolshell.cn/articles/652.html

  2. 你应该把MYISAM迁移到INNODB吗?http://www.cnblogs.com/zuoxingyu/archive/2012/10/04/2711495.html

  3. MyISAM versus InnoDBhttp://stackoverflow.com/questions/20148/myisam-versus-innodb

  4. What's the difference between MyISAM and InnoDB?http://stackoverflow.com/questions/12614541/whats-the-difference-between-myisam-and-innodb

这篇文章不是说这个的,而是另一件事。假如你匆忙的安装了新系统,没有将老系统上的部分数据使用专门的导入/导出/备份工具备份下来,那可能后期会比较纠结。特别是开发人员的数据库,庆幸的是你可以将原先的数据库文件从data目录拷贝至新的数据库的data目录中,而且更幸运的是你可以停止数据库服务来达到迁移的目的。但如果你忘记了自己部分数据库的表使用的是什么引擎,那可能会让你很痛苦,因为你可能忘记了重启数据库,或者你迫切要演示什么功能没有重启数据库,那可能有意思了。因为一个数据库是可以同时使用多种表引擎的,如下图所示(已经清空表里面的数据):

image

这时有意思的是MyISAM的表在直接复制到data目录后可以直接使用,而InnoDB却不可以,它可能会报出一个表不存在的错误提示,删除都是不可以的。直到你重启数据库后才发现又可以用了。

因此使用MyISAM数据库不仅可以降低数据库系统的负载又可以实现如此nice的效果,这个在不借助任何工具时是比较讨人喜欢的。这个也算是MyISAM和InnoDB的一种区别吧。

上述问题只是常识,只是在某些情景下心急的管理员可能会忽略这些常识,当然了这也是很多人都会犯的错误。谨以此文记录这件刚才发生的囧事。





本文转自 urey_pp 51CTO博客,原文链接:http://blog.51cto.com/dgd2010/1403785,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
无缝集成 MySQL,解锁秒级 OLAP 分析性能极限,完成任务可领取三合一数据线!
通过 AnalyticDB MySQL 版、DMS、DTS 和 RDS MySQL 版协同工作,解决大规模业务数据统计难题,参与活动完成任务即可领取三合一数据线(限量200个),还有机会抽取蓝牙音箱大奖!
MySQL原理简介—4.深入分析Buffer Pool
本文介绍了MySQL的Buffer Pool机制,包括其作用、配置方法及内部结构。Buffer Pool是MySQL用于缓存磁盘数据页的关键组件,能显著提升数据库读写性能。默认大小为128MB,可根据服务器配置调整(如32GB内存可设为2GB)。它通过free链表管理空闲缓存页,flush链表记录脏页,并用LRU链表区分冷热数据以优化淘汰策略。此外,还探讨了多Buffer Pool实例、chunk动态调整等优化并发性能的方法,以及如何通过`show engine innodb status`查看Buffer Pool状态。关键词:MySQL内存数据更新机制。
mysql慢查询每日汇报与分析
通过启用慢查询日志、提取和分析慢查询日志,可以有效识别和优化数据库中的性能瓶颈。结合适当的自动化工具和优化措施,可以显著提高MySQL数据库的性能和稳定性。希望本文的详解和示例能够为数据库管理人员提供有价值的参考,帮助实现高效的数据库管理。
83 11
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
155 7
MySQL事务日志-Undo Log工作原理分析
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL的存储引擎是其核心组件之一,负责数据的存储、索引和检索。不同的存储引擎具有不同的功能和特性,可以根据业务需求 选择合适的引擎。本文详细介绍了MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案。
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL 窗口函数详解:分析性查询的强大工具
MySQL 窗口函数从 8.0 版本开始支持,提供了一种灵活的方式处理 SQL 查询中的数据。无需分组即可对行集进行分析,常用于计算排名、累计和、移动平均值等。基本语法包括 `function_name([arguments]) OVER ([PARTITION BY columns] [ORDER BY columns] [frame_clause])`,常见函数有 `ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`, `SUM()`, `AVG()` 等。窗口框架定义了计算聚合值时应包含的行。适用于复杂数据操作和分析报告。
251 11
Mysql索引:深入理解InnoDb聚集索引与MyisAm非聚集索引
通过本文的介绍,希望您能深入理解InnoDB聚集索引与MyISAM非聚集索引的概念、结构和应用场景,从而在实际工作中灵活运用这些知识,优化数据库性能。
379 7
MySQL引擎InnoDB和MyISAM的区别?
InnoDB是MySQL默认的事务型存储引擎,支持事务、行级锁、MVCC、在线热备份等特性,主索引为聚簇索引,适用于高并发、高可靠性的场景。MyISAM设计简单,支持压缩表、空间索引,但不支持事务和行级锁,适合读多写少、不要求事务的场景。
99 9
MySQL底层概述—10.InnoDB锁机制
本文介绍了:锁概述、锁分类、全局锁实战、表级锁(偏读)实战、行级锁升级表级锁实战、间隙锁实战、临键锁实战、幻读演示和解决、行级锁(偏写)优化建议、乐观锁实战、行锁原理分析、死锁与解决方案
170 24
MySQL底层概述—10.InnoDB锁机制
MySQL底层概述—5.InnoDB参数优化
本文介绍了MySQL数据库中与内存、日志和IO线程相关的参数优化,旨在提升数据库性能。主要内容包括: 1. 内存相关参数优化:缓冲池内存大小配置、配置多个Buffer Pool实例、Chunk大小配置、InnoDB缓存性能评估、Page管理相关参数、Change Buffer相关参数优化。 2. 日志相关参数优化:日志缓冲区配置、日志文件参数优化。 3. IO线程相关参数优化: 查询缓存参数、脏页刷盘参数、LRU链表参数、脏页刷盘相关参数。
131 12
MySQL底层概述—5.InnoDB参数优化

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等