ハイパフォーマンスMySQLのノート(第IV章スキーマのデータ型と最適化)

P147〜P176。

データ型の最適化の単純な原理

  1. 小さい方は、通常は良いです。
  2. シンプル十分。
  3. NULLを避けるようにしてください。

整数型

  • TINYINT(8)、SMALLINT(16)、MEDIUMINT(24)、INT(32)、BIGINT(64)。
  • すべてのタイプのような符号なし整数符号なしの数を、添加してもよいですTINYINT UNSIGNED
  • 整数型指定法的範囲の幅、intとして(11)の値を制限しないと、INT(20)は同じです。

小数

  • 正確なタイプ、DECIMALは、時間のより大きな量のデータを格納するための一般的な財務データは、データは、対応する係数が乗算され、BIGINT DECIMALと場所で考えることができます。
  • 不正確な種類、FLOAT、およびDOUBLE。

文字列型

各文字列は、独自のキャラクタセットと照合順序を定義することができます。
VARCHARタイプを

  • 可変長の文字列が格納され、又はさらに2バイトのストリング長レコードの使用を必要とすることができます。
  • UPDATEは、元になるために長い行以上かもしれページ内下に置くことができない、行の結果のページに配置することはできません、そして、MyISAMのラインがメモリの異なる断片に分割し、分割されたページへのInnoDB必要性、ストアに新しいページを生成しますこのライン。
  • 状況は:文字列の列の最大長はめったに更新済み列の平均長さよりはるかに大きいので、断片化は問題ではない; UTF-8文字セット、記憶のために異なる長さを使用して、各文字のような、そのような複合体の使用。
  • InnoDBは長いVARCHARはBLOBとして保存されます。

CHARタイプ

  • 文字列の長さに応じて固定長型、MySQLの常には、削除末尾のスペースを定義して十分なスペースを割り当てられました。
  • 例えばMD5値として、店舗固定長の文字列に適合し、

VARCHAR(5)とVARCHAR(200)ストレージ・コストと同じであるが、特にメモリのために、長い一時テーブルやソート操作をより多くのメモリ列を消費します。

タイプBLOBとTEXTタイプ

  • TINYBLOB、SMALLBLOB、BLOB、MEDIUMBLOB、LONGBLOB。BLOB =同様SMALLBLOB。TEXT型。
  • MySQLのBLOBとTEXT値個別のオブジェクト処理など。値が大きすぎると、InnoDBストレージのために「外部」の記憶領域を使用して、このとき1〜4をとり、各行のポインタ値を格納するバイト、次いで外部ストレージ実際の値。
  • 差分:バイナリデータのBLOBストレージタイプは、そこには、照合と文字セットは、テキストがありません。
  • 特別なソートは:並べ替えのみ文字列全体がSUSTRING(カラム、長さ)、ORDER BYを使用して、文字の前の場合のみ小さな部分をソートするのではなく、各列の最前面のmax_sort_lengthバイトを行います..
SET max_length_for_sort_data = 1024;
SHOW VARIABLES LIKE '%max_length_for_sort_data%';

おすすめ

転載: www.cnblogs.com/winwink/p/HighPerformanceMySql_Chapter4_SchemaAndDataType.html