【MySQL】クラスタインデックスとセカンダリインデックスのお話

2021.09.23

記事画像
皆さん、こんにちわ。 エンジニアの高橋希望です。 みなさんはクラスタインデックスとセカンダリインデックスについてご存知でしょうか?? 前回、インデックスのお話をしましたが、インデックスの中にも2種類あり、それが「クラスタインデックス」と「セカンダリインデックス」になります。 ◆ クラスタインデックス 「主キー」のことを指します。辞書を例にあげるとすると「ページ番号」みたいなものです。 例えば「プログラム」の意味を調べたい時、「プログラム」の情報が42ページにあることを知っていれば、42ページ目を開き、すぐに情報を取得することができます。 キー(ページ番号)が示す場所(ノード)に、データそのものが格納されている、ということです。 ◆ セカンダリインデックス 「主キー」以外のキーを指します。辞書を例にあげると「もくじ」みたいなものです。 例えば「プログラム」の意味を調べたい時には、「もくじ」で50音それぞれの情報がどのページから始まっているかが記載されているので、「ふ」の言葉は40ページから始まっていることがまずわかります。40ページ目から「プログラム」の文字列を探し42ページ目にある「プログラム」の情報を取得することができます。1ページ目から探さなくても良いので、早く目的の情報を取得することができます。 キー(50音)が示す場所(ノード)には、主キー(ページ番号)が格納されている、ということです。 クラスタインデックスで検索をかける方が早いですが、1テーブルに1つしか設定できない。かつ、ユニークな情報でなければいけないので、テーブル設計をする際には気をつけてください。
--------------------------------------------------
社員を募集しております!

type
開発エンジニア*前職給与保証*リモート可*ブランクOK*案件還元率80%以上*月給35万円~*年休128日

社員のゲーム実況チャンネル
$fugaのゲーム実況

この記事を書いた人

高橋 希望

入社10年目の元不動産営業、現ゲームエンジニア 得意言語はphp,javascript,python,elixirなど