13章インデックスと制約
本書の焦点はプログラミングテクニックにあるため、ここまでの12の章では、強力なselect
文、insert
文、update
文、delete
文を組み立てるのに利用できるSQL言語の要素を集中的に取り上げてきました。しかし、コーディングに「間接的な」影響を与えるデータベースの機能は他にもあります。本章では、そのうちの2つであるインデックスと制約を取り上げます。
13.1 インデックス
テーブルに行を挿入する際、データベースサーバーはそのデータをテーブル内の特定の場所に配置するわけではありません。たとえば、customer
テーブルに行を追加する場合、データベースサーバーはその行をcustomer_id
列の数値の順に配置するわけでも、last_name
列のアルファベット順に配置するわけでもありません。データベースサーバーは単に、ファイル内の次に利用できる場所にデータを配置するだけです(各テーブルの空き領域のリストはデータベースサーバーが管理しています)。このため、customer
テーブルに対してクエリが実行されたら、データベースサーバーはテーブルの行を1つ残らず調べなければなりません。たとえば、次のクエリを実行したとしましょう。
mysql>SELECT first_name, last_name
->FROM customer
->WHERE last_name LIKE 'Y%';
+------------+-----------+ | first_name | last_name | +------------+-----------+ | LUIS | YANEZ | | MARVIN | YEE | | CYNTHIA | YOUNG | +------------+-----------+ ...
Get 初めてのSQL 第3版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.