webhost不支持InnoDB。现在怎么办?

时间:2010-02-16 15:27:48

标签: mysql views innodb web-hosting myisam

我正在我的笔记本电脑上开发一个小型WAMP Web应用程序,我在其中运行了mySQL实例,并为数据库引擎选择了InnoDB。经过几个星期的开发,我想向公众开放,发现我的网站主机提供的数据库服务器不支持InnoDB,只支持MyISAM。

从我的笔记本电脑上的innoDB架构生成的create-and-populate脚本,当针对实时数据库执行时,可以设法创建单独的TABLES,但后来遇到创建VIEW的问题。 MyISAM不支持视图吗?我知道FOREIGN KEYs不是。这就是为什么我选择InnoDB的原因......我的innoDB架构设计有哪些机会与myISAM一起工作?

有没有直接的方法将整个架构从一个存储引擎转换到另一个?我应该寻找另一个提供支持innoDB的mysql数据库的Web主机吗?

3 个答案:

答案 0 :(得分:6)

您的选择:

  1. 询问您的网络托管服务提供商是否可以在他们的服务器上启用InnoDB(有时他们会为您执行此操作或将您的帐户移至支持InnoDB的服务器)。
  2. 通过InnoDB支持获得新的网络托管服务提供商。
  3. 在PHP中处理外键依赖项(例如,您可以使用Zend_Db和Zend_Db_Table来处理数据库,如果正确设置它们,这些类可以自动处理外键依赖项。)
  4. 将您的应用程序转换为MyISAM表。
  5. 就个人而言,我认为4号是最糟糕的解决方案。现在有很多网站托管服务提供商支持InnoDB,因此浪费时间重新编写大部分应用程序以使用MyISAM。当然,这取决于应用程序的大小和复杂程度。如果它相对较小,那可能不是一个坏主意。

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

答案 1 :(得分:2)

是的,但InnoDB还有许多其他功能,如事务和行锁定(而不是表锁定)。

答案 2 :(得分:0)

它不是关于InnoDB与MyISAM:两种表类型都支持视图。我认为这是版本问题(Views [...] are available in MySQL Server 5.0)或关于grant tables

如果您要发布确切的错误消息,这将有所帮助。