インデックス
インデックス(データベースとSQL)
意味 データ検索の高速化
インデックスとは?
インデックスは、データベースのテーブルに対して作成される特別な構造です。大量のデータから特定の情報を素早く見つけ出すために使われます。本の索引のように、データの位置を素早く特定することができ、検索速度を大幅に向上させます。
インデックスの具体的な使い方
インデックスの作成と効果の確認
<?php
$pdo = new PDO('mysql:host=localhost;dbname=shop', 'username', 'password');
// インデックス作成前の検索時間を計測
$start = microtime(true);
$stmt = $pdo->query("SELECT * FROM products WHERE product_name LIKE '%スマートフォン%'");
$end = microtime(true);
$time_before = $end - $start;
// インデックスの作成
$pdo->exec('CREATE INDEX idx_product_name ON products(product_name)');
// インデックス作成後の検索時間を計測
$start = microtime(true);
$stmt = $pdo->query("SELECT * FROM products WHERE product_name LIKE '%スマートフォン%'");
$end = microtime(true);
$time_after = $end - $start;
echo "インデックス作成前の検索時間: {$time_before} 秒\n";
echo "インデックス作成後の検索時間: {$time_after} 秒\n";
echo "速度向上率: " . round(($time_before - $time_after) / $time_before * 100, 2) . "%\n";
👇出力結果
インデックス作成前の検索時間: 0.0521 秒
インデックス作成後の検索時間: 0.0032 秒
速度向上率: 93.86%
この例では、まずproductsテーブルのproduct_nameカラムに対する検索時間を計測します。その後、product_nameカラムにインデックスを作成し、再度同じ検索を行って時間を計測します。インデックスの作成により、特定の検索がどれだけ高速化されたかを確認できます。実際の結果は、データ量やシステム環境により異なります。
インデックスに関するよくある質問
PHPのインデックスについても学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのインデックスやPDO::lastInsertId()、PDO::__construct()、SELECT、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
PHPを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!