2016-08-20 19 views
0

私は、1日86400秒、365日x 10年= 3列のみのレコード315,360,000行、datetime、decimal、およびsmallintを持つ のレコードを格納するテーブルを作成しています3フィールドのみ)datetimeをインデックスとして使用します。PHP巨大なDB mysqlの中で最も速いクエリ

私はdatetimeをINT unsigned(PHP time())に変換してストレージを減らすことを考えています。 datetime、decimalおよびsmallintでは、1つのテーブルに対して2.5GBを使用しています。 DATETIMEをINTに置き換えようとはしませんでした。

このテーブルへの挿入は1回の仕事であり、解析目的で多くのSELECT文が必要になるため、InnoDBをMyISAMに変更します。

ご意見やご提案はありますか?

+0

ニーズに合ったかどうかを確認し、あなたの選択に依存します。 –

+0

非常に単純なselect、WHERE節は最初のフィールドを指していました。 – Fire

+0

この場合、myisamまたはinnodbはどうですか? myisamに行きますか? – Fire

答えて

0

インデックスは、テーブルの上に高速検索を取得するために使用されるものの一つです: http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html

基本的なレベルでは、インデックスはあなたが尋ねた何かを検索するときにエンジンがテーブル全体を反復しませ作るための責任がありますために。

インデックスの使用に関して、リンクに記載されたもののうちのいくつか

はすぐにWHERE句に一致する行を検索するには。

考慮から行を削除します。 複数のインデックスの間で選択肢がある場合、MySQLは通常、最も小さい行数(最も選択的なインデックス)が であるインデックスを使用します。

ことが

+0

私はインデックス部分について理解していますここでのケースは、DatetimeまたはINTである単一のインデックスだけです。 – Fire

関連する問題