ネプラスのテックブログ。ネットワーク、クラウド、サーバなどのITインフラ情報を中心に発信中。

  1. ネプラス インフラエンジニア採用
  2. テックマガジン
  3. データベース
  4. MySQL Index 確認とは?INFORMATION_SCHEMA.STATISTICSを確認

MySQL Index 確認とは?INFORMATION_SCHEMA.STATISTICSを確認

  • データベース
  • テクノロジー
公開日時:   更新日時:
MySQL Index 確認とは?INFORMATION_SCHEMA.STATISTICSを確認
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    MySQLエンジニア 案件・求人一覧はこちら

    MySQL Index 確認とは?


    MySQLではPRIMARY KEY(PK)、FOREIGN KEY(FK)、UNIQUEはINFORMATION_SCHEMA.TABLE_CONSTRAINTSで参照しますが、単一カラムIndexやマルチカラムIndexはINFORMATION_SCHEMA.STATISTICSで参照することになります。

    ここではSQL文を発行しながら単一カラムIndexやマルチカラムIndexの追加や削除を行いその結果を確認していきます。

    使用したMySQLのバージョンとデータ

    MySQLは、mysql-installer-community-8.0.24.0.msiをDeveloperDefaultモードでインストールして使用しています。

    使用したデータはMariaDB Sample Databaseよりnation.zipをダウンロード後解凍して使用しています。解凍後Windows PowerShellを起動して以下の手順でMySQLに取込んでください。

    テスト用データを作成する

    nationデータベースにはIndexを持つテーブルが存在しないので、テスト用に下記のように追加します。

    成功すれば以下の様に表示されます。

    Indexを追加する

    vips_idxテーブルに単一カラムIndexとしてidx_vip_idを追加してみましょう。

    MySQLでは以下のSQL文を実行します。
    ALTER TABLE テーブル名 ADD INDEX Index名(カラム名);

    Table:vips_idxのColumn_name:vip_idにKey_name:idx_vip_idの追加が確認できます。

    次にregions_mltにマルチカラムIndexとしてidx_multiを追加してみましょう。

    MySQLでは以下のSQL文を実行します。
    ALTER TABLE テーブル名 ADD INDEX Index名(カラム名1, カラム名2, ・・・);

    Table:regions_mltのColumn_name:region_idとColumn_name:continent_idにKey_name:idx_multiの追加が確認できます。

    INFORMATION_SCHEMA.STATISTICSを確認する

    それではMySQLのテーブルのIndex情報を提供するINFORMATION_SCHEMA.STATISTICSを確認します。

    追加したIndexが確認できました。

    表示する項目は以下から適宜選択してください。

    EXPLAINの出力

    EXPLAINを使用して、SELECTが使用するテーブルの情報を確認します。

    possible_keys:idx_vip_id
    key:idx_vip_id
    Extra: Using index

    このように、Indexが使用されていることが確認できます。

    同様にEXPLAINを使用して、SELECTが使用するテーブルの情報を確認します。

    possible_keys:idx_multi
    key:idx_multi
    Extra: Using index
    このように、Indexが使用されていることが確認できます。

    INFORMATION_SCHEMA.TABLE_CONSTRAINTSを確認する

    MySQLのテーブルにある制約の情報を提供するINFORMATION_SCHEMA.TABLE_CONSTRAINTSを確認します。

    Indexはこのテーブルに含まれていない事が確認できます。

    Indexを削除する

    MySQLでは以下のSQL文を実行してIndexを削除します。

    ALTER TABLE テーブル名 DROP INDEX Index名;

    INFORMATION_SCHEMA.STATISTICSを確認してみましょう。

    Indexが削除されたことが確認できました。

    MySQLのIndexを試してみよう

    いかがでしたでしょうか。MySQLで単一カラムIndexやマルチカラムIndexの追加や削除を行いその結果をINFORMATION_SCHEMA.STATISTICSで確認しました。

    ぜひご自身で実際にSQLを実行して理解を深めてください。

    MySQLエンジニア 案件・求人一覧はこちら

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    オンライン面接も随時受付中。ぜひお気軽にご応募ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    MySQL新着案件New Job