データベースのデータを一括処理するプログラムでやりがちなパジネーションドリフトの失敗例と対策
2024.07.20 15:48 (4ヶ月前) 投稿者: カテゴリ: Django , MySQL , Python
データベースから特定の条件に合致したレコードを抽出し、更新するバッチ処理の中で、LIMIT OFFSET を使って1000件程度づつループする時、処理内容によっては全件走査されずに漏れが発生する場合があります。その内容の説明と解決方法を書いています。
データベースから特定の条件に合致したレコードを抽出し、更新するバッチ処理の中で、LIMIT OFFSET を使って1000件程度づつループする時、処理内容によっては全件走査されずに漏れが発生する場合があります。その内容の説明と解決方法を書いています。
久々にmysqldumpを使用した際の話 とある検証のために本番環境の最新のデータをdev環境のデータベースにいれる必要があり、久々にmysqldumpを実行。
増築を繰り返しているMysqlデータベースを使用しているとたまにある照合順序が違うテーブルの結合問題の解決方法
ども、お久しぶりです。 オンプレのインフラ構築を担当することが多い四斗邊です。 今回は社内の要望でmysql8.0サーバーを社内ネットワーク上に構築する!というのが目標です。 結構ありふれたネタだと思いますが、社内に向けた手順書のような形で残しておきたかったので今回記事しました。
4/1から新卒で入社した高津です。
今年の春に入社しました、情報システム部の清瀬です。
Django には、便利な ORマッパーが搭載されており、SQLを一切書かずともRDBの操作が行えます。 今回、SQL実行時に思ったようにインデックスが使用されず、パフォーマンスが出ない問題がありました。 これは、生SQLを実行した場合も同様にインデックスが使われなかったため、Django の問題ではなく、実行計画が最適に作成されなかったというSQL上の問題(というか仕様?)です。 SQL内にインデックスヒントを強引に書き込むことでインデックスを強制した所、正常なパフォーマンスとすることができたので、その方法を書きます。