• ベストアンサー

遅くならない検索方法

初歩的な質問ですが、よろしくお願い致します。 あるテーブルで、更新フラグが0のものを検索して ループで処理を行うプログラムを作りました。 その際、更新フラグは1でUPDATEをします。 データは日々増えていきます。 また、既存のデータも変更があった場合には、 (別プログラムから)更新フラグが0戻されます。 このままだと検索スピードがだんだん遅くなると思われますが、 検索スピードが遅くならないような方法を教えて下さい。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

処理対象のテーブルは一つですか? レコード長はどれくらいでしょう? 現在の件数とこれからの増加の見込みは? 検索・更新処理は一日のうちどれくらい実行されますか? 検索・更新の対象になるのは全体の件数のうち何割ぐらいですか? もし、検索・更新の対象になるのが全体のうち極少数なら、そのフラグ項目にインデックスを張れば検索は速くなります。一方、それなりの割合になるのなら、別なアプローチが必要です。 たとえば、年月単位にデータが蓄積されていくデータの場合、テーブルを年単位でパーティション分割するという手段もあるかもしれません。

その他の回答 (2)

回答No.3

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

  • marutone
  • ベストアンサー率40% (70/174)
回答No.1

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

関連するQ&A