3

私はラップトップで小さなWAMPWebアプリケーションを開発していました。そこでは、mySQLのインスタンスが実行されており、DBエンジンにInnoDBを選択しました。数週間の開発の後、私はそれを一般に公開したいと思いました、そして私のウェブホストによって提供されるデータベースサーバーがInnoDBをサポートせず、MyISAMだけをサポートすることを知りました。

ラップトップのinnoDBスキーマから生成されたcreate-and-populateスクリプトをライブデータベースに対して実行すると、個々のTABLESを作成できますが、VIEWの作成で問題が発生します。MyISAMではビューがサポートされていませんか?私は外部キーがそうではないことを知っています。それが、私がInnoDBを選択した理由です...私のinnoDBスキーマ設計をmyISAMで機能させるチャンスは何ですか?

スキーマ全体を1つのストレージエンジンから別のストレージエンジンに変換する簡単な方法はありますか?innoDBをサポートするmysqldbを提供する別のWebホストを探す必要がありますか?

4

3 に答える 3

6

あなたのオプション:

  1. Webホスティングプロバイダーに、サーバーでInnoDBを有効にできるかどうかを尋ねます(場合によっては、サーバーでInnoDBを有効にするか、アカウントをInnoDBをサポートするサーバーに移動します)。
  2. InnoDBをサポートする新しいWebホスティングプロバイダーを入手してください。
  3. PHPで外部キーの依存関係を処理します(たとえば、Zend_DbとZend_Db_Tableを使用してデータベースを操作できます。これらのクラスを正しく設定すると、外部キーの依存関係を自動的に処理できます)。
  4. アプリケーションをMyISAMテーブルに変換します。

個人的には、4番が最悪の解決策だと思います。最近、InnoDBをサポートする多くのWebホスティングプロバイダーが存在するため、MyISAMで動作するようにアプリケーションの多くを再コーディングするのは時間の無駄になります。もちろん、これはアプリケーションの規模と複雑さに依存します。比較的小さければ、それほど悪い考えではないかもしれません。

私はおそらく新しいウェブホスティングプロバイダーを探すでしょう。

于 2010-02-16T16:02:43.547 に答える
2

はい。ただし、InnoDBには、トランザクションや行ロック(テーブルロックではなく)など、他にも多くの機能があります。

于 2010-04-15T22:29:27.367 に答える
0

InnoDBとMyISAMの違いではありません。ビューは両方のテーブルタイプでサポートされています。バージョンの問題(ビュー[...]はMySQLサーバー5.0で利用可能)または付与テーブルに関するものだと思います。

表示されている正確なエラーメッセージを投稿すると便利です。

于 2010-02-16T16:09:27.680 に答える