2020年5月30日MySQLのレプリケーションについて調べたことなどを。定義DBを複製して、別サーバーでも管理できるようにすることバックアップと違い、リアルタイムで変更を反映したDBをもつ構成サーバーは一般的にマスター(わかりやすくいうとメイン)とスレーブ(サブ)に分割されるマスターはメインのDB主に、データの変更と参照両方ができ、スレーブに変更内容を転送、複数のスレーブが持てる。スレーブはマスターの変更内容を受け取り、基本的には参照のみに使われることが多い。重いSELECT文などがある場合はスレーブを参照、更新系はマスターをみるなどとすることで負荷を適宜に分散させることができる。注:基本的に一瞬でスレーブには転送されるのですが、それでもほんの少しラグが起こります。スレーブからデータを取得とした時にスレーブに変更が反映されていない・・ということがありました。ほんの少しですがラグがあったので注意しましょう。可用性の向上マスター障害時にマスターをスレーブに昇格するなどして、障害時の復旧コストを下げることができる仕組みマスターのバイナリログをスレーブに転送することで実現することができる。実際の構築手順(ローカルで実行できる環境)dockerでの構築ローカルではdockerを使うのが一番やりやすいと思います。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。実務で結構サーバーをヘビーに使われるお客さんがいて、SQLが遅くなったりとしています。なんとか対策しないといけないので、いろいろと調査をいます。それで今回はMySQLのメモリ問題など。iciqlについて以前、このブログでも紹介したO/Rマッパーのiciqlについて、使い方や問題点がある程度わかったので書いておきます。...JPAでのリレーション(アノテーション使用)JPAでリレーションを管理するとき、最初はアノテーションでやろうとしたんですが、結局やり方がわからずコンストラクタ式をかいて対処してました。今回はCASEとHAVINGを組み合わせて、そこそこの難問を解いていきます。下記のようなテーブル(testresults)があるとします。...データクレンジングリレーショナルデータベースでデータを管理する前に、しなくてはいけないことはデータをデータベースに登録できる形に整形することです。このことをデータクレンジングといいます。