Post

データベース

2018-04-22 13:50:03

Indexとはなにか

インデックスとはテーブルに格納されているレコードを高速に取り出すための仕組み 以下のようなO(n)問題を抱えたクエリがあるとする。 SELECT * FROM users WHERE first_name = ‘Tom’ このクエリのパフォーマンスを上げるためには、以下のようにIndexを貼る。 ALTER TABLE users ADD INDEX (first_name) メリット・デメリットメリット データの読み込み・取得の速度向上 デメリット 容量の増加 書き込み速度の低下 データの作成・更新時には、同時にインデックスの追加・更新も行われるため、上記のようなデメリットが生じる。 イ...

データベース

DB Index mysql

2018-05-12 12:36:36

N+1問題とは

概要N+1問題の説明と対応についてまとめる。 N+1問題とは 全てのレコードの取得に1個+レコード文だけのN個のSQLを発行してしまう問題 N+1というより1+Nと解釈したほうがわかりやすい 例 一覧表示用のデータを取得するケース 一覧用の全データを取得するSELECTを1回発行(Nレコード返ってくる) Nレコードの関連データ取得のためにSELECTをN回発行 対応 join SELECT "users".* FROM "users" INNER JOIN "posts" ON "posts"."...

データベース

No Tags.