从管理员角度分析:MySQL表引擎中MyISAM和InnoDB的对比-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

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

简介:

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

常用的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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: