2011-08-16 11 views
2

私は、現在、新しいシステムに取り組んでおり、ユーザーアクセスログに関するCMSによって保存されたデータを見ています。mySQLインデックスは、あまりにも多くの行があまりにも多いですか?

現在のテーブルは、現在500万行のデータを抽出しています。これは約11ヶ月にわたるデータです。私が作成しているSQLクエリは通常、インデックス付きの列であるuidのようなものを検索しています。

私が関心とスケーラビリティを欠いている質問は、索引付けされた列でも検索が高速化されない場合にテーブルを取得する必要がありますか?

+0

かなり大きく、ウィキペディアはすべてのデータを単一のインデックス付きテーブルに格納しています。私はあなたがウィキペディアよりも多くのデータを持っているとは思わないので、心配はありません。 –

+0

本当に??あなたはこれに関する情報源を持っていますか?興味深い読まれる – Vade

+0

うーん、私はそれを検索することができます。私はそれを数年前に読むので、私は正確な情報源を覚えていません。もし私がそれが病気であれば、ここに投稿してください。 –

答えて

2

テーブルが大部分が読み込まれている場合、インデックスは常により高速になります。書き込みが読み取りよりも速くスケールされると予想される場合、インデックスの更新は価値があるよりも高価になる可能性があります。

uidがプライマリキーの場合、常にインデックスが作成されるため、MySQLは各行のキーを必要とするため、実際にこのインデックスのオーバーヘッドはありません。

1

適切なインデックスは常にクエリを高速化します...それがそのポイントです。テーブルの大きさは関係ありません。索引のポイントは、DBMSに、テーブル全体を行単位で読み取る必要がある場合よりも、テーブルのサブセットを高速に取得できるようにすることです。

関連する問題