我应该为我的桌子切换到InnoDB吗?

时间:2017-07-23 04:22:19

标签: mysql database innodb myisam

我有一个基于PHP的API,可以在共享主机上运行并使用MySQL。我一直在阅读关于InnoDB和MyISAM的内容,并希望粘贴一些关于我的API数据库的具体内容,以确保转移到InnoDB是有意义的。默认情况下为这些表设置了MyISAM,因此我没有故意选择该数据库引擎。

  1. 我的查询比写入更多(70%的写入我会说)。读取/查找总是由“外键”(userid)(我理解MyISAM没有这些约束)但可能很好知道我是否移动,因为我可以利用它。
  2. 我不进行全文搜索
  3. 我的数据对我很重要,我最近了解到MyISAM存在丢失数据的风险?过去几次我丢失了一些数据,并且只是假设用户与API交互的方式是我的错误。也许不是?我很困惑,如果有人会因丢失数据而选择MyISAM,那么我可能不太了解MyISAM。
  4. 我在共享主机上,他们确认我无权访问my.cnf中的更改设置,更改缓冲区,线程,并发设置等。
  5. 我将来可能会转而使用DigitalOcean或AWS
  6. 我的托管公司使用MySQL版本是14.14发行版:5.6.34
  7. 基于这些因素,我的直觉是将所有表格切换到InnoDB,至少看看是否存在问题。如果我遇到问题,我可以运行相同的语句,但将InnoDB与MyISAM交换以恢复。

    非常感谢。

1 个答案:

答案 0 :(得分:2)

简答:是的! MyISAM是MySQL的原始格式,但多年前InnoDB因为多种原因而受到青睐。在高级图片上,您的应用程序将更好地执行,因为InnoDB具有更好的锁定管理。

您可以在此处找到问题Should I change my DB from MyISAM to InnoDB? (AWS notification)的更长答案以及以下2篇关于从MyISAM迁移到InnoDB的文章:

https://dba.stackexchange.com/questions/167842/can-converting-myisam-to-innodb-cause-problems

https://kinsta.com/knowledgebase/convert-myisam-to-innodb/