微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL MyISAM数据丢失的可能性?

如何解决MySQL MyISAM数据丢失的可能性?

| 许多站点和脚本仍使用MysqL而不是Postgresql我有几个低优先级的博客,因此我不想迁移到另一个数据库,所以我正在使用MysqL。 问题出在他们的低内存VPS上。这意味着我无法启用InnoDB,因为它仅占用大约80MB的内存。所以我不得不冒险运行MyISAM。 考虑到这一点,我使用MyISAM会遇到什么样的数据丢失?如果有人在保存博客文章时发生断电,我会丢失该文章还是整个数据库在这些低端机器上,只要不丢失整个数据库,我可以丢失一些最近的评论博客文章。     

解决方法

        您可能会发现以下有关MySQL性能的文章:   对我来说,这不仅与表锁有关。表锁只是MyISAM限制之一,您需要考虑在生产中使用它。尤其是如果您来自“传统”数据库,您可能会因MyISAM行为(以及由此导致的默认MySQL行为)而感到震惊–不当关机会损坏它,如果出现某些错误,它将以部分语句执行失败发现等... http://www.mysqlperformanceblog.com/2006/06/17/using-myisam-in-production/     ,        MyISAM不兼容ACID,因此缺乏耐用性。这实际上取决于使用InnoDB或停机造成的更多成本……内存。 MyISAM当然是一个可行的选择,但是您的应用程序需要数据库层提供什么?由于其局限性,使用MyISAM可能会使生活变得更艰难,但在某些情况下MyISAM可能会很好。由于锁定性质,仅使用逻辑mysqldump备份将中断您的服务。如果您使用的是二进制日志记录,则可以备份这些备份,以便为增量备份提供备份,如果MyISAM表中有损坏,可以进行重放以帮助恢复。     ,        MySQL手册指出了可能损坏表的事件类型,并且有一篇文章介绍了如何使用myisamchk修复表。您甚至可以发出查询来修复它。
REPAIR TABLE table;
但是,没有有关某些类型的崩溃是否为“无法修复”的信息。即使执行备份,这也是我不允许的数据丢失类型。     ,        如果服务器崩溃,您的自动增量主键可能会损坏,因此您的博客帖子ID可能会从122、123、75922371234、75912371235(在123之后服务器崩溃)中跳转。我已经看到了它的发生,而且还不是很漂亮。     ,        您总是可以在同一VLAN上获得另一台作为备份从属数据库的主机,这将大大降低风险。我相信您唯一的其他选择是: 为您的服务器获取更多RAM或终止某些服务 查看您的主机是否在VLAN上有任何类型的共享数据库托管,您可以支付少量费用使用。 进行定期备份,并为最坏的情况做好准备。     ,        以我的拙见,MyISAM不会造成任何数据丢失。 停电造成数据丢失的风险是因为停电,而不是数据库存储机制。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?