Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ハッシュインデックス | セクション
SQL最適化とクエリ機能

bookハッシュインデックス

メニューを表示するにはスワイプしてください

ハッシュインデックスは、SQLデータベースにおける等価検索の高速化を目的とした特殊なタイプのインデックスB-treeインデックスがデータをバランスの取れた木構造で整理するのに対し、ハッシュインデックスはハッシュ関数を用いてキー値をインデックス内の特定の位置(「バケット」)に直接マッピングする。

たとえば、productsテーブルで特定の商品名を検索する場合、ハッシュ関数が該当するバケットを迅速に特定するため、値の正確な一致を探すクエリ(例:WHERE name = 'Apple iPhone 14')に対して非常に高速

ただし、ハッシュインデックスは範囲検索やソートには適さない。これは、ハッシュ関数がインデックス化された値の順序を保持しないため。

123456789
-- Drop the hash index if it already exists to avoid errors DROP INDEX IF EXISTS idx_products_name_hash; -- Create a hash index on the name column of the products table CREATE INDEX idx_products_name_hash ON products USING HASH (name); -- Test the effect of the index by searching for a specific product by name SELECT * FROM products WHERE name = 'Apple iPhone 14';
copy

ハッシュインデックスは、クエリが等価条件で列を頻繁に検索する場合、特にデータセットが大きく、列の値が一意またはほぼ一意である場合に、顕著なパフォーマンス向上をもたらす。たとえば、アプリケーションが商品名の完全一致で商品を検索する場合、name列にハッシュインデックスを作成することで、等価検索においてB-treeインデックスよりも高い性能を発揮。ただし、"A"から"M"までの商品名を検索するなどの範囲検索や、結果のソートが必要な場合は、B-treeインデックスの方が効果的。ハッシュインデックスは、順序付きの走査や範囲検索ではなく、ポイントルックアップが多いワークロードに最適。

1. ハッシュインデックスが最も適しているクエリの種類は何ですか?

2. ハッシュインデックスは範囲検索に利用できますか?

3. B-treeインデックスと比較した場合のハッシュインデックスの制限は何ですか?

question mark

ハッシュインデックスが最も適しているクエリの種類は何ですか?

正しい答えを選んでください

question mark

ハッシュインデックスは範囲検索に利用できますか?

正しい答えを選んでください

question mark

B-treeインデックスと比較した場合のハッシュインデックスの制限は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  11

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  11
some-alt