2012-03-24 5 views
0

Joomlaサイトに記事を追加するアプリケーションをJAVAで作成しました。
私の問題は、実行するために5つのクエリが必要であるということです(記事を追加するとassetsテーブルに対応するノードを挿入し、assetsテーブルの他のノードを更新する)。そのため、私のJAVAアプリケーションがリモートマシン上で実行されているため、多くの問題があると&のいずれかが失敗した場合、assetsのテーブルブレークに失敗する可能性があります。
私はトランザクションと手動コミットを使ってこれを解決しようと考えましたが、Joomlaのストレージエンジン(MyISAM)はトランザクションをサポートしていません。これら2つのテーブルのストレージエンジンを "InnoDB"に変換することを考えました。
これは間違いありませんか? Joomla(MyISAMを使用している他のテーブルとのJOININGなど)で問題が発生することはありませんか? サイトに影響を与え、速度を落としますか?
他に解決策がありますか(たとえば、5つのクエリをすべてサーバーに送信して順番に実行するなど)JoomlaテーブルエンジンをInnoDBに変更する

おかげ

答えて

1

いくつかの考え:

  1. 私は完全にわかりませんが、私はJoomlaのは、InnoDBの持つすべての問題を持っていなければならないとは思いません。 MyISAMテーブルとJOINテーブルをJOINに結合すると、MySQLは内部的にInnoDBをMyISAMに変換します。しかし、私はJoomlaの男ではないと私はまだそれを確認することはできません

  2. なぜトリガーを使用しないでください - contentのAFTER INSERTトリガー?

  3. また、すべての5つのINSERTを実行するストアドプロシージャを記述するかもしれないが、もう一度、すべての5つのINSERTクエリからすべてのデータを保持するために、単一のテーブルを作成します

  4. 任意のトランザクションのサポートがありません。もちろん、この表は断続的な性質のものです。次に、この中間テーブルのすべてのデータをそれぞれのテーブルに移行する別のストアドプロシージャを作成します。

希望は上記の意味です!

+0

こんにちは、ありがとうございます。トリガがjoomla自身のクエリに問題を起こさないか?私は、私は私のリモートアプリケーションのクエリ(必要)とjoomla自体のクエリ(それはすべきではありません!)の両方で実行されるAFTER INSERTトリガを作成することを意味します。リモートアプリケーションのクエリでのみ実行するように設定できますか? – RYN

関連する問題