#mysql
6件の記事
-
Laravel 13.38のPreventStaleDatabaseReadsで保存直後の古いデータ表示を防ぐ!stickyとの違いも
リードレプリカ構成のLaravelで「保存したのに一覧に出ない」を防ぐ、13.38.0の新ミドルウェアPreventStaleDatabaseReads。stickyとの違い、for()での秒数の決め方、ジョブで使うusingWritePdoまでまとめました。
-
EXPLAIN ANALYZEでLaravelの遅いクエリを実測!loopsの読み方とtoBase()の落とし穴
EXPLAIN の推定だけでは分からなかった遅いクエリを、MySQL の EXPLAIN ANALYZE で実測しました。actual time・rows・loops の読み方と、Laravel のクエリをそのまま流すマクロ、toBase() を挟む理由をまとめます。
-
MySQLの使っていないインデックス、いきなり消さずに「不可視」で2週間様子を見てから消すようにした話
Laravel のプロジェクトで増えすぎたMySQLのインデックスを、sys.schema_unused_indexes で洗い出し、INVISIBLE にして様子を見てから削除する手順にしました。統計がリセットされる落とし穴や、外部キーで消せないときの対処も書いています。
-
Prisma ORMで型安全なDB操作!導入手順と本番マイグレーションで気をつけたいこと
TypeScriptプロジェクトにPrisma ORMを導入した体験談。スキーマから型が自動生成される仕組みや、マイグレーション管理がどう変わったかをまとめます。
-
LaravelのN+1問題を解消したらAPIが速くなった話!with()以外の対策も
LaravelのEloquentでN+1問題が起きていたAPIにEager Loadingを導入したところ、クエリ数が大幅に減り、応答速度がかなり速くなりました。その手順と感想をまとめます。
-
Laravelのpaginate()が遅い原因はCOUNTクエリ!simplePaginate()で劇的に速くした話
商品一覧の遅さを調べる中で、Laravel の paginate() が発行する COUNT クエリが原因候補だと判明しました。simplePaginate() に切り替えた結果と考え方をまとめます。