Yakstは、海外の役立つブログ記事などを人力で翻訳して公開するプロジェクトです。
10年以上前投稿 修正あり

InnoDBのプライマリキーとセカンダリキー

InnoDB使InnoDB

原文
InnoDB Primary Key versus Secondary Index: An Interesting Lesson from EXPLAIN « ChriSQL (English)
翻訳依頼者
D98ee74ffe0fafbdc83b23907dda3665
翻訳者
D98ee74ffe0fafbdc83b23907dda3665 doublemarket
原著者への翻訳報告
未報告




EXPLAIN

InnoDB2INT2
CREATE TABLE `t1` (
  `id1` int(10) unsigned NOT NULL,
  `id2` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id1`),
  KEY `id2` (`id2`)
) ENGINE=InnoDB;


SELECT id1 FROM t1;

WHERE

WHEREEXPLAIN
mysql> EXPLAIN SELECT id1 FROM t1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: t1
         type: index
possible_keys: NULL
          key: id2
      key_len: 5
          ref: NULL
         rows: 1
        Extra: Using index

possible_keysNULL(使)


possible_keyskeypossible_keys使 http://dev.mysql.com/doc/refman/5.6/en/explain-output.html


possible_keysNULLkeyid2

id2



id1EXPLAINid2



InnoDBInnoDB

調(sql/sql_select.cc)find_shortest_key()


1) ()

2) (InnoDB)

key_info[nr].key_lengthkey_lengthIO

使使()使


IO

USE INDEX ()使key_len
mysql> EXPLAIN SELECT id1 FROM t1 USE INDEX (Primary)\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: t1
         type: index
possible_keys: NULL
          key: PRIMARY
      key_len: 4
          ref: NULL
         rows: 1
        Extra: Using index

EXPLAINkey_len54

次の記事
MySQL Utilitiesでフェイルオーバ - mysqlrpladmin
前の記事
MySQLのALTER TABLEをモニタリングする

Feed small 記事フィード

新着記事Twitterアカウント