2016-07-24 21 views
0

私は数百万のレコードを持つMySQLテーブルを持っており、毎日数百のレコードがテーブルに挿入されています。フロントエンドで 最も頻繁なMySQL SELECTクエリを最適化する方法

は、それがクエリを使用して、最新の100件のレコードを表示します。

SELECT * FROM 
table_a 
ORDER BY creation_time DESC 
LIMIT 100 

ユーザーがページを訪問するたびに、それは大きなテーブルをスキャンしてソートを実行します。この手順では、リソースが非常に消費されるように見えます。

私はVIEWがMySQLにあることを知ります。結果を保存するビューを作成すると、パフォーマンスを最適化するのに役立ちますか? viewは元のテーブルと同期していますか?または、クエリのパフォーマンスを向上させる他の手段?

ありがとうございます!

+0

ビュースロー物事をダウン。索引に着目して始める。それらの行がぶら下がっているかどうかを確認してください。 – Drew

+0

@Drewの点に関しては、 'creation_time'にインデックスを追加することができます。 'ALTER TABLE' table_a' ADD INDEX 'idx_table_a_creation_time'(' creation_time') – 1000111

+0

ありがとうございます。そのような状況を処理する最善の方法は何ですか?テーブルは日々増えていますが、常に最新のレコードが選択されています。 – Yota

答えて

0

あなたのクエリをスピードアップするためのものを、次の試みることができます。一般的に

1. Select only required column(s) instead of all (*) in SELECT Query. 
2. Create Indexes on creation_time.