質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

2回答

10656閲覧

ハッシュインデックスとは

aaaaaaaa

総合スコア501

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2018/02/05 10:20

編集2018/03/08 10:37

ハッシュインデックスとは、何なのでしょうか。
ここによると
ハッシュインデックスは、btreeのようにDBのインデックス(索引みたいなやつ)の種類の一つであり、与えられた数値を一定の規則に従って別の値に変換するハッシュを用いてキー(primary key?unique key?)をハッシュ化する。どのあたりが似ているのか分からないが、ハッシュテーブウ(配列っぽいやつ)に似ているという。

ハッシュインデックスとは、何なのでしょうか。

  • b-treeに関する理解

ネットや書籍などで得た知識をちゃんぽんにして記録。
ハッシュインデックスについて上記のように図にして説明していただけると有難いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ハッシュテーブルとインデックスについては知っている前提でいいのですか?
簡潔に言うとハッシュテーブルを使ったインデックスです。
その特性はこちらを見るとわかりやすいと思います。
8.3.8 B ツリーインデックスとハッシュインデックスの比較

###追記
B 木はデータ構造の名前なので図示できます。ハッシュインデックスはインデックスの実装の名前なのでメーカーによって違います。

投稿2018/02/05 10:44

編集2018/03/08 10:45
Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ハッシュについては暗号化によく用いられる技術です。
ハッシュ関数(幾つかアルゴリズムがある)により得られたハッシュ値は、元のデータより小さなものになります。
※ハッシュ値は必ずしもユニークにはなりませんが、ユニークにならない頻度は極めて小さいものです。

このハッシュ値によるインデックスがハッシュインデックスです。
検索する対象データが小さくなるのとカーディナリティが高くなることにより、高速検索になります。

但し、ハッシュ値での並び替えは意味をなさないので、用途に応じて通常のインデックスとの使い分けが必要です。
特定が目的ならハッシュインデックス、候補が目的なら通常のインデックスと考えて差し支えないかと思います。

投稿2018/02/06 02:01

編集2018/02/06 03:22
sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aaaaaaaa

2018/02/06 08:19

ご回答ありがとうございます。 カーディナリティというのは、カラムの値の種類(種類というのは、値がYES、NOや男、女の何れかだったり{この場合は、カーディナリティは2}、1年間の日付なら1日から365日なのでカーディナリティは365)とレコードの数の比率で、レコードの数よりカラムの値の種類が多い時は、「カーディナリティが高く」、レコードの数よりカラムの値の種類が少ない時が「カーディナリティが低い」ということであっておりますか。 またbtreeに関する理解は、ネットや書籍などの情報のおかげで追記した質問文にあるような、簡単な理解(合っているのかはわかりませんが)をしておるのですが、btreeに比べてハッシュインデックスがどのように動作するのかいまいち理解できないのです。 図にするとb-treeと違いどのような動作をするのでしょうか。
aaaaaaaa

2018/03/08 10:35

ご回答ありがとうございます。ハッシュテーブルのほうのqiitaは、質問前に読んだことがありますが、 なかなかハッシュテーヴルの動作がつかめなかったので質問したのです。 btreeは、質問文にもあるような図で何となく理解できるのですが、ハッシュテーブルにも処理を図にしたようなものはないのでしょうか。
sazi

2018/03/08 13:40 編集

理解したいのは検索アルゴリズムですか? ハッシュインデクスはハッシュ値が、所謂ポインターと同義で、ピンポイントでアクセスしますから、b-treeのようなアルゴリズムは存在しません。 単純だから、図解しようとも思わないので、そういったサイトが見つからないのだと思います。 お気に召すかは分かりませんが、一応参考に。 https://ppp-lab.sakura.ne.jp/ProgrammingPlacePlus/algorithm/search/006.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問