プロが教える店舗&オフィスのセキュリティ対策術

初歩的な質問ですが、よろしくお願い致します。

あるテーブルで、更新フラグが0のものを検索して
ループで処理を行うプログラムを作りました。
その際、更新フラグは1でUPDATEをします。

データは日々増えていきます。
また、既存のデータも変更があった場合には、
(別プログラムから)更新フラグが0戻されます。

このままだと検索スピードがだんだん遅くなると思われますが、
検索スピードが遅くならないような方法を教えて下さい。


よろしくお願い致します。

A 回答 (3件)

こんばんは。



>更新フラグが0のものを検索して
0のものを1にするだけなら、
update テーブル
set 更新フラグ=1
でいいんじゃ?
where句も要らないような・・・。
    • good
    • 0

処理対象のテーブルは一つですか?


レコード長はどれくらいでしょう?
現在の件数とこれからの増加の見込みは?
検索・更新処理は一日のうちどれくらい実行されますか?
検索・更新の対象になるのは全体の件数のうち何割ぐらいですか?

もし、検索・更新の対象になるのが全体のうち極少数なら、そのフラグ項目にインデックスを張れば検索は速くなります。一方、それなりの割合になるのなら、別なアプローチが必要です。
たとえば、年月単位にデータが蓄積されていくデータの場合、テーブルを年単位でパーティション分割するという手段もあるかもしれません。
    • good
    • 0

更新フラグにインデックスを貼るのが最適ではないでしょうか。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!