はじめに
富山県に住んでいるChikaといいます。
毎日投稿を目標に、バックエンドエンジニア転職に向けた学習内容をアウトプットします。
DBの入門をざっくり学習していきます。
バックエンドエンジニアになるまでの学習内容は以前投稿した以下の記事を基にしています。
本日の学習内容
本日はDBのパフォーマンスに関して続きとして、オプティマイザやインデックスの概要を学習しました。
- オプティマイザ ←Topics!!
- インデックス ←Topics!!
オプティマイザ/インデックス
オプティマイザ
SQL文が必要とするデータに対して、実行計画を作成する内部DBのに内部プログラムのこと。
- 基本、実行計画はすべてオプティマイザに任せる(人間が考えることはしない)
- オプティマイザが計画を立てる際はテーブルの行数、サイズ等をサンプリング抽出した「統計情報」が使用される
インデックス
テーブル内の列に対応した索引で、rangeスキャンするときに必要。
B-Tree(平衡木)構造のため、どの値へも同じ探索時間でたどり着ける。
- インデックスの作成基準
- サイズが大きいテーブルにだけ作る
- 主キー制約等、自動生成される列には不要
- カーディナリティが高い列に作る(1列で多種類の値を持っている)
- 不用意に作りすぎるとオプティマイザが迷ってパフォーマンスが落ちる、
使用している教材はこちら↓
おわりに
最後までお読みいただきありがとうございました。
アドバイス・応援コメント等いただけますと幸いです。