Ticket #696 (closed 改善提案: 無効)

Opened 11 years ago

Last modified 10 years ago

get_auto_incrementの速度改善

Reported by: miningbrownie Owned by: miningbrownie
Priority: Milestone: EC-CUBE2.5.0alpha
Component: その他 Version:
Keywords: SC_Query auto_increment Cc:
修正済み:

Description

受注時などに、ALTER TABLEを使ってPrimary Keyのインクリメントを行っているが、MySQL5.1系よりも前のバージョンでは、

ALTER TABLE  の処理では、元のテーブルの一時的なコピーが作成されます。 変更はこのコピーに対して実行されます。その後元のテーブルが削除され、新しいテーブルの名前が変更されます。この変更処理は、すべての更新が、エラーになることなく、確実に新しいテーブルに自動でリダイレクトされるように実行されます。ALTER TABLE  の実行中、元のテーブルは他のクライアントによって読み取り可能です。このテーブルの更新とテーブルへの書き込みは、新しいテーブルの準備が整うまで停止されます。

とありますので、受注件数が増えてくると、急激に遅くなってきます。

それに伴い、LOCK TABLES もしているので、立て続けに受注が入ってきた場合は、もう大変です。

改善案として、無理やりINSERTしてDELETEする方法を実装しましたので、 どなたか添付のpatchを見ていただけると助かります。

2.5系にて対応できたらと思っていますが

Attachments

SC_Query.patch Download (3.1 KB) - added by miningbrownie 11 years ago.
SC_Query.test.php Download (1.4 KB) - added by miningbrownie 11 years ago.
速度検証用 インストール済みEC-CUBEのdata/classに入れて CLIで使う
test.sh Download (123 bytes) - added by miningbrownie 11 years ago.

Change History

Changed 11 years ago by miningbrownie

Changed 11 years ago by miningbrownie

速度検証用 インストール済みEC-CUBEのdata/classに入れて CLIで使う

Changed 11 years ago by miningbrownie

comment:1 Changed 11 years ago by nanasess

  • Milestone changed from EC-CUBE2.x.x to EC-CUBE2.5.0

milestone:EC-CUBE2.5.0 としておきます

comment:2 Changed 10 years ago by nanasess

  • Status changed from new to closed
  • Resolution set to 無効

#780 にて MDB2::nextID を使用した実装へ変更し, パフォーマンスも問題無いと思われますのでクローズします

Note: See TracTickets for help on using tickets.