約 40k のエントリを持つテーブルを持つ mysql データベースがあります。次のステートメントの実行には約 10 秒かかります (データベースは既に選択されています)。
SELECT * FROM MyTable WHERE Column < 3
なぜこんなに時間がかかるのですか? また、パフォーマンスを改善するにはどうすればよいですか?
他のデータベースは高速ですか? (例: MongoDB、CouchDB、...) ただし、MySQL データベースを使用することをお勧めします。
編集:
次のクエリ...
EXPLAIN SELECT * FROM MyTable WHERE Column < 3;
結果は次のとおりです。
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE Occurances index NULL SearchString 102 NULL 40242 Using where; Using index
次のクエリは、列の値の分布を示しています
SELECT COUNT(*), Column FROM MyTable GROUP BY Column;
結果は次のとおりです。
COUNT(*) Column
43 0
5 1
106 2
71 3
42 4
283 5
2337 6
9491 7
22073 8
1191 9
1064 10
1105 11
919 12
393 13
288 14
288 15
200 16
123 17
71 18
71 19
36 20
10 21
13 22
8 23
4 24
3 25
4 29