カテゴリー: SQL

開発, 障害対応, MySQL, チューニング

performance_schemaでのロック待ち、スロークエリ分析

    引用元 https://zenn.dev/hiro1111/articles/performance_schema   ステートメント分析 最もリソースを消費しているSQLステートメントを特定します。以下のクエリは、CPU時間、待機時間、ロック時間、およびIO時間で最もコストが高いステートメントを見つけます。   待機イベント分析 データベースの待機イベントを …

MySQL, トラブルシューティング

[訓練]誤って有料会員を無料会員に全件更新してしまったので、テーブルを復旧する

経緯 とある動画をラジオ感覚で流していた   スタートアップに在籍 有料会員数は100程度のサービスを運用 メンテナンス作業のミスによるインシデントが発生 事故の内容 1件の特定の有料会員を無料会員に修正するメンテナンスを行う時に // WHERE句の付け忘れ // ;の位置が早くてWHEREが入らないケース // 改行されている && 1行目のみ選択されている &amp …

MySQL, AWS

AWS RDS PITR+ロールフォワードによるリカバリ 【誤ったクエリ発行からの復旧】

  RDSのクエリ単位での復旧手順 ソシャゲとかECで、バグでアイテムを9999999999999個大量配布しちゃった時に、スーパーメンテナンスタイムからの問題あるクエリを回避しつつの真のリストアで通常運営できる状態に復旧します。 前提条件 AWS RDS PITR+ロールフォワードによるリカバリ 【下準備編】   RDS MySQL DBダンプコマンドのコツ   関 …

MySQL, AWS

AWS RDS PITR+ロールフォワードによるリカバリ 【汎用 RDSのディスク障害からの復旧】

      前提条件 AWS RDS PITR+ロールフォワードによるリカバリ 【下準備編】 RDS MySQL DBダンプコマンドのコツ     関連 AWS RDS PITR+ロールフォワードによるリカバリ 【下準備編】 AWS RDS PITR+ロールフォワードによるリカバリ 【汎用 RDSのディスク障害からの復旧】 AWS RDS PITR …

MySQL, AWS

AWS RDS PITR+ロールフォワードによるリカバリ 【下準備編】

  関連 AWS RDS PITR+ロールフォワードによるリカバリ 【下準備編】 AWS RDS PITR+ロールフォワードによるリカバリ 【汎用 RDSのディスク障害からの復旧】 AWS RDS PITR+ロールフォワードによるリカバリ 【誤ったクエリ発行からの復旧】   RDS側作業     binlog保存期限設定   24時間の保持に設定 …

SQL

JOIN, EXISTS, IN使い分け

  言語化しておく🐱   主表と従属表でどちらのカラムも必要な場合 JOIN   LEFT JOIN 従属表のカラムの列にnullが必要な場合 条件によってnullで表示させたい場合はON句を使う ON A.id = B.a_id AND B.delete_flag = 0   INNER JOIN 主表と従属表の共通行を出したい場合   &nbs …

MySQL

MySQL SELECTしかできないUserを作る

  metabase用にSELECTしかできないユーザを作ることになった🐱     例         Amazonおすすめ iPad 9世代 2021年最新作 iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

SQL, PHP

Laravel クエリビルダー 複数JOINとWHERE条件 query builder

  クエリビルダはあまり使わないのだけど、レコードの有無を取得する場合や集計処理なんかでは使うことがある🐱     生クエリがこうだとする   select * from `employee_emails` left join `employee_skills` on `employee_skills`.`employee_email_id` = `employee_ …

SQL, SEノウハウ

すべらないSQLによる本番マイグレーション

    仕様変更によってremarksにあるデータをlogin_infoに移す本番マイグレーションがありました。 事業部に伝わる秘技 ポイント 作業前バックアップ →ヤバくなったら戻せる 立会いによるレビュー トランザクションとカウントを駆使したマイグレーション マイグレーションを本番サーバ内のトランザクションを利用することで、 更新対象を常に確認しながら実行することで精度を確 …

MySQL, AWS, Linux

Resolved [mysqlbinlog] ERROR: Got error reading packet from server: Could not find first log file name in binary log index file

        mysqlbinlog: unknown option –raw ??   解決 MySQL ClientがMariadbになっていた。 RDSはMySQL5.7なので これで実行できた     Amazonおすすめ iPad 9世代 2021年最新作 iPad 9世代出たから買い替え。安いぞ!🐱 初めてならi …

SQL, システム設計

親子カテゴリのDB設計

この記事の紹介する方法だと、仕様で階層が深くなるようになったとしても対応できます。 こういうデータがあったとする categories   id, parent_id, name 1, 3, カテゴリ1 2, null, カテゴリ2 3, 2, カテゴリ3 4, null, カテゴリ4 5, 3, カテゴリ5   階層を表すとこう 3-1-5 2-3-5 4   SQL &nb …