Database

【MySQL】トランザクションの分離レベルを理解する|READ COMMITTEDとREPEATABLE READの違い
はじめに

同じトランザクション内で SELECT を2回打ったとき、結果が変わらないことを期待していませんか。MySQL の InnoDB では、トランザクション分離レベルによって、その期待が満たされるかどうかが変わります。

Database

【MySQL】N+1問題の検出と解決方法|Laravel Eloquentでの実例とEXPLAINでの確認

はじめに

一覧画面が遅い、リクエストあたりの SQL が何十本もある、といった症状の裏に N+1 問題 が隠れていることがあります。Laravel の Eloquent では、リレーションをプロパティとして触ると、そのタイミングで SQ ...

Database

インデックスの仕組みと設計方法

MySQL のクエリが遅いとき、とりあえずインデックスを追加していませんか。

インデックスは検索を速くするための重要な仕組みですが、貼り方を間違えると期待したほど効かなかったり、書き込みやストレージの負担が増えたりします。 ...

Database

EXPLAINの読み方とSLOW QUERYの改善方法

「このクエリ、なんでこんなに遅いんだろう…」

本番で突然レスポンスが遅くなり、ログを漁っていたら数秒かかっているSQLを発見した、という経験は誰でも一度はあるはずです。

MySQLのチューニングで最初に使うのが ...

Database

No Image

mysqldump でデータベース全体ではなく、特定の条件に合致するデータだけをエクスポートしたいことがあります。

「特定の日付以降のレコードだけバックアップしたい」
「特定のユーザーIDに紐づくデータだけ抽出した ...