カテゴリー MySQL

データベースのデータを一括処理するプログラムでやりがちなパジネーションドリフトの失敗例と対策

データベースから特定の条件に合致したレコードを抽出し、更新するバッチ処理の中で、LIMIT OFFSET を使って1000件程度づつループする時、処理内容によっては全件走査されずに漏れが発生する場合があります。その内容の説明と解決方法を書いています。

データベースのデータを一括処理するプログラムでやりがちなパジネーションドリフトの失敗例と対策

mysqlのセキュリティ更新で新たなユーザー権限が必要になっていた

久々にmysqldumpを使用した際の話 とある検証のために本番環境の最新のデータをdev環境のデータベースにいれる必要があり、久々にmysqldumpを実行。

mysqlのセキュリティ更新で新たなユーザー権限が必要になっていた

照合順序が違うカラムの外部結合

増築を繰り返しているMysqlデータベースを使用しているとたまにある照合順序が違うテーブルの結合問題の解決方法

照合順序が違うカラムの外部結合

そうだ、mysql8.0サーバーを構築してみよう

ども、お久しぶりです。 オンプレのインフラ構築を担当することが多い四斗邊です。 今回は社内の要望でmysql8.0サーバーを社内ネットワーク上に構築する!というのが目標です。 結構ありふれたネタだと思いますが、社内に向けた手順書のような形で残しておきたかったので今回記事しました。

そうだ、mysql8.0サーバーを構築してみよう

新卒エンジニアが最初の半年に任された業務

今年の春に入社しました、情報システム部の清瀬です。

Django の ORマッパーで生成されたSQLを実行前に置換し、JOIN時のインデックスを強制する

Django には、便利な ORマッパーが搭載されており、SQLを一切書かずともRDBの操作が行えます。 今回、SQL実行時に思ったようにインデックスが使用されず、パフォーマンスが出ない問題がありました。 これは、生SQLを実行した場合も同様にインデックスが使われなかったため、Django の問題ではなく、実行計画が最適に作成されなかったというSQL上の問題(というか仕様?)です。 SQL内にインデックスヒントを強引に書き込むことでインデックスを強制した所、正常なパフォーマンスとすることができたので、その方法を書きます。

Django の ORマッパーで生成されたSQLを実行前に置換し、JOIN時のインデックスを強制する

TORICOの他のブログ投稿

最近の投稿

フィード

RSS / Atom