Ticket #696 (closed 改善提案: 無効)
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
Change History
Changed 16 years ago by miningbrownie
-
attachment
SC_Query.test.php
added
速度検証用 インストール済みEC-CUBEのdata/classに入れて CLIで使う
comment:1 Changed 16 years ago by nanasess
- Milestone changed from EC-CUBE2.x.x to EC-CUBE2.5.0
milestone:EC-CUBE2.5.0 としておきます
Note: See
TracTickets for help on using
tickets.
