シーケンシャルI / OとランダムIの-mysql知識を仕上げ/ O

このような表を仮定します。

CREATE TABLEを`person_info`(
  ` id`のINT11 )NOT NULL AUTO_INCREMENT、
  `NAME` VARCHAR(100 )NOT NULL、
  NULL NOT` birthday`日、
  `phone_number`のCHAR11 )、NOT NULL、
  ` country`のVARCHAR(100 )NOT NULL、
  PRIMARY KEY( `id`)、
  KEY` idx_name_birthday_phone_number`( `NAME`、` birthday`、 `phone_number`)
)ENGINE = InnoDBのAUTO_INCREMENT = 4 DEFAULT CHARSET = LATIN1

前記二次インデックス `idx_name_birthday_phone_number`(` NAME`、 `birthday`、` phone_number`)があります

3つのデータを想像:

私たちは、探している範囲を実施する場合など、

SELECT * 
person_info FROM 
WHERE名 > ' アッシュ'と名前< ' Ashburn3 '

idx_name_birthday_phone_numberのB +ツリーのレコードを対応するインデックスをファーストネーム列の値によってソートされているので、ディスクに格納されているアッシュ〜Ashbur3間に記録された値は、接続された1つまたは複数のデータ⻚に集中しています我々はすぐに我々はまた、呼び出すことができ、このよう読んで、レコードに付属のものは、ディスクから読み出し置くことができるI / Oの順序を、クラスタ化インデックスに記録されたレコードのIDフィールドの工程1で得られた値に応じて接続されていない可能性が注文ID(すなわち、プライマリキー)に応じて配置されているので、これらの値は、ポリIDと連続していませんクラスタ化された完全なユーザー・レコードが異なるデータに配置することができるアクセスするためのインデックス⻚ので、完全なユーザーレコードを読み取るには、我々はまた、呼び出すことができ、このよう読んで、より多くのデータ⻚にアクセスすることができるランダムI / Oを一般的には、のシーケンシャルI / O比はランダムI / O性能がはるかに高いですが、それはすぐに遅くに1とステップ2のステップがあります。

 

おすすめ

転載: www.cnblogs.com/ql211lin/p/11121800.html