mysql - 虚拟主机不支持 InnoDB。现在怎么办?

标签 mysql views innodb web-hosting myisam

我在我的笔记本电脑上开发了一个小型 WAMP 网络应用程序,我在其中运行了一个 mySQL 实例,我选择了 InnoDB 作为我的数据库引擎。经过数周的开发,我想将其公开,但发现我的虚拟主机提供的数据库服务器不支持 InnoDB,仅支持 MyISAM。

从我的笔记本电脑上的 innoDB 模式生成的创建和填充脚本,在针对实时数据库执行时,可以设法创建单独的表,但随后在创建 View 时遇到问题。 MyISAM 不支持 View 吗?我知道外键不是。这就是我选择 InnoDB 的主要原因...使我的 innoDB 模式设计与 myISAM 一起工作的机会有多大?

是否有任何直接的方法可以将整个模式从一个存储引擎转换为另一个存储引擎?我应该寻找另一个提供支持 innoDB 的 mysql 数据库的网络主机吗?

最佳答案

您的选择:

  1. 询问您的网络托管服务提供商是否可以在他们的服务器上启用 InnoDB(有时他们会为您启用或将您的帐户转移到支持 InnoDB 的服务器)。
  2. 获得支持 InnoDB 的新网络托管服务提供商。
  3. 处理 PHP 中的外键依赖关系(例如,您可以使用 Zend_Db 和 Zend_Db_Table 来处理数据库,如果您设置正确,这些类可以自动处理外键依赖关系)。
  4. 将您的应用程序转换为 MyISAM 表。

就我个人而言,我认为数字 4 是最糟糕的解决方案。现在有许多支持 InnoDB 的 Web 托管提供商,因此重新编码大部分应用程序以使用 MyISAM 将浪费您的时间。当然,这取决于应用程序的规模和复杂程度。如果它相对较小,这可能不是一个坏主意。

我可能会寻找新的网络托管服务提供商。

关于mysql - 虚拟主机不支持 InnoDB。现在怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2273937/

相关文章:

views - PhalconPHP 中的 *.volt 和 *.phtml 文件有什么区别?

MySql 在 Windows 上出错,但在 Linux 上没有,指定的 key 太长

mysql - Mysql中用另一张表替换一张表的数据

mysql - xampp 连接到工作 WIFI 后停止工作

php - Mysql 多条件查询结果

google-bigquery - bigquery 备份所有 View 定义

c# - MVVM Light - 多个 ViewModel(并将它们连接起来)

mysql - 将大型 MyISAM 表转换为 InnoDB

mysql - 我可以在使用 MariaDB 或 MySQL 更新多个不同行的同时插入到表中吗?

php - Android PHP MySQL 搜索结果到ListView