付録B. 補足トピック
本書の執筆時点では、本書のミッションに当てはまらないデータベースやSQLのタスクもある。本書の意図は、SQLに慣れ親しむことであり、利用可能なすべての機能を氾濫させないことである。しかし、間違いなく本書の中核的な使命には当てはまらないが、省略するに値しないトピックもある。これらのトピックについては、熟練度を高めるために、ここで言及することにする。
APPENDIX B1 - さらなるトピックス
本書はSQLの入門書である。したがって、その範囲と焦点は基礎的なトピックに限られている。 しかし、もしこの本を読み終えて、データベースやSQLのレパートリーを増やしたいと思っているのであれば、以下のトピックを参考にしてほしい:
| トピック | 説明 |
|---|---|
UNION そしてUNION ALL |
2つ以上のクエリの結果を1つの結果セットに追加する。 |
| サブクエリ | 他のクエリをテーブルと同じようにクエリする。 |
| インデックス | 大量のデータを持つテーブルのSELECT パフォーマンスを向上させる("APPENDIX B2 - インデックスを使ったパフォーマンスの向上 "で簡単に取り上げている)。 |
| トランザクション | 複数のUPDATE/DELETE/INSERT 文を1つのフェイルセーフ・バッチとして実行する(「付録B3 - トランザクション」で簡単に説明)。 |
| トリガー | UPDATE/DELETE/INSERT の文に反応し、ロギングや高度なデータ検証などのタスクを実行する。 |
| 正規表現 | 高度なテキストパターンに簡単にマッチするユニバーサルな構文を使用する。基本的には、LIKE ステロイドのワイルドカードである。 |
| データベース管理 | 大企業環境の本番データベースを微調整する。 |
特に、さまざまなデータベースプラットフォームのニュアンスを探っていくうちに、おそらく他にも何十ものトピックに遭遇するだろう。しかし、これらは本書以外にもデータベースの知識を広げる手がかりになるはずだ。
APPENDIX B2 - インデックスを使ったパフォーマンスの向上
データベースが大きくなると、SELECT クエリでパフォーマンスが低下し始めることがある。 マシンは各レコードを処理して、WHERE の条件付きにマッチするものを発見しなければならない。レコード数が増えれば、この処理が遅くなるのは明らかだ。
パフォーマンスを大幅に向上させる一般的な方法は、インデックスを使用することである。インデックスとは、書籍の索引に非常に似た方法で、より高速な検索を可能にするメカニズムである。インデックスを使うと、SELECT パフォーマンスが向上するが、INSERT 、UPDATE 、DELETE 文が遅くなる。また、データベースファイルが大きくなる。これらは、インデックスを使用するかどうかを決定する際に、バランスを考慮しなければならない要素である。最初にデータベースを設計するときには、インデックスの作成について考えるべきではない。インデックスを作成するのは、パフォーマンス上の問題を発見してからにしよう。
1つまたは複数のカラムにインデックスを指定し、これらのカラムを頻繁に修飾するカラムにする。例えば、PRODUCT テーブルを頻繁にクエリし、 price 列にWHERE 文を使用する場合、ここに示すようにその列にインデックスを適用することができる:
CREATEINDEXprice_indexONPRODUCT(price);
インデックスに ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access