天天看点

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

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

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

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

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

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

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

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