2011-01-15 4 views
0

mysqlデータベースの場合、データを格納するために(パフォーマンスなどのために)文字または数字を使用する方が良いですか?(125015Arts & Entertainmentカテゴリを表して)行の値Arts and Entertainmentcategoryという名前mysqlは数値型または文字型を優先しますか?

  1. コラムvarchar(255)

    は、ここで私は、3例を意味するものです。そこから列は、サーバーが最高の実行聞かせ照会select文..ための行の値そう125015

category_intという名前の列値125015

  • bigint(255)category_numという名前
  • コラムvarchar(255)、?

    1. SELECT from table WHERE 
        category = 'Arts and Entertainment' 
    2. SELECT from table WHERE 
        category_num = '125015' 
    3. SELECT from 
        table WHERE category_int = 125015 
    

    また、任意の利点はVARCHAR内部番号を記憶する、例えば2を使用するためではなく、INT(1をexapleと比較して)があるでしょうか?

  • 答えて

    1

    データ型が小さいほど、索引が小さくなり、検索が高速になります。

    数値は文字列よりも明らかに優れています。文字列の比較は非常に遅いことが知られています。

    例2は、#2の文字列の値がより短いため#3よりも有効ではありませんが、#1と#2は同じパフォーマンスカテゴリです。

    +1

    INTまたはMEDIUMINT列のタイプでも#4は - あなたが1600万(MEDIUMINT)以上のカテゴリを必要とするのは間違いありません。そうすれば40億(INT)で十分です。 – Mchl

    +0

    ああ、チップのおかげで..私はそれを忘れてしまった。私はそれをTINYINTに変更しました。 –

    関連する問題