我的站点在 VDS 服务器上运行。我刚刚发现我的 MySQL 服务器不支持 InnoDB 引擎,因此我不能在我的应用程序中使用数据库事务。
这让我想到,有些人可能永远不会使用交易。是这样吗?如果是这样,如何在 MyISAM 中协调不同表上的相关操作?
否则,有没有办法在 VDS 上运行的 MySQL 服务器上安装 InnoDB?
谢谢!
我的站点在 VDS 服务器上运行。我刚刚发现我的 MySQL 服务器不支持 InnoDB 引擎,因此我不能在我的应用程序中使用数据库事务。
这让我想到,有些人可能永远不会使用交易。是这样吗?如果是这样,如何在 MyISAM 中协调不同表上的相关操作?
否则,有没有办法在 VDS 上运行的 MySQL 服务器上安装 InnoDB?
谢谢!
如果您需要交易,那么您需要交易,而 MyISAM 不会减少芥末。
一些应用程序不需要事务。例如; 一个应用程序,一次从不运行多个相关的 SQL 语句,并且不需要回滚多个 SQL 语句。另一个示例是使用 MySQL 作为简单键值存储的应用程序。有许多用例不需要数据库级事务支持。
如果不了解有关您的 VDS 的更多详细信息,很难回答您问题的第二部分。谁是您的托管服务提供商?您是否具有更改 my.cnf 的 shell 访问权限和权限?如果没有,那么您可能无法启用 InnoDB。如果你这样做了,那么这里是另一个 SO 答案,详细说明了如何在 MySQL 上启用 InnoDB:How to enable INNODB in mysql
您通常可以启用引擎,手动安装 InnoDB 组件,或者简单地重新安装默认包含该引擎的 MySQL 版本。MyISAM 是疯狂的数据库,速度非常快,但如果您的系统没有正确关闭,它也很不可靠并且容易被完全破坏。
在 MyISAM 上运行关键任务应用程序是一个非常糟糕的主意。如果出于性能原因需要 MyISAM 表,它们应该始终是一次性的,可以从另一个更可靠的数据源轻松地重新构建。