更新:ご迷惑をおかけしますが、explain
を使用した後、この質問はあまりにもローカライズされているようです。答えは、mysqlが間違ったインデックスを選択していたことです。投票を終了する。BETWEENが各クエリを個別に実行するよりも大幅に遅いのはなぜですか?
私は
select * from some_table where sql_date = '2011-12-01';
のようなジョブを実行し、それが30分で走りました。
今、私は
select * from some_table where sql_date BETWEEN '2011-12-01' and '2011-12-08';
を実行していることだし、それは私が「の間に」ですなぜそれが
select * from some_table where sql_date = '2011-12-01';
select * from some_table where sql_date = '2011-12-02';
select * from some_table where sql_date = '2011-12-03';
などを実行するために、より高速であったであろうことを考えさせるれ、20時間以上を取っていますとても遅いです?
更新:
@loganfsmyth:日付のインデックスがあります。
@Magnus:大きなテーブルのいくつかの結合。
@Sparky:バイナリデータがありません。私はINTO OUTFILE 'filename.txt'
を使用しています。
1つの日付のために戻ってこれを説明する:20+時間の走行時間で
+----+-------------+------------+--------+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------+---------+------------------------------------------+---------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+--------+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------+---------+------------------------------------------+---------+----------------------------------------------+
| 1 | SIMPLE | dates | ref | PRIMARY,index_dates_on_sql_date | index_dates_on_sql_date | 3 | const | 1 | Using index; Using temporary; Using filesort |
| 1 | SIMPLE | views | ref | index_views_doc_id,index_views_id | index_new_views_id | 8 | olap.dates.date_key,const | 3241236 | |
| 1 | SIMPLE | docs | eq_ref | PRIMARY,pub_date,published_id,user_id,user_anonymous,user_deleted | PRIMARY | 4 | olap.views.doc_id | 1 | Using where |
| 1 | SIMPLE | docs_count | ref | user_id | user_id | 5 | slave.docs.user_id | 1 | Using where |
+----+-------------+------------+--------+----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------+---------+------------------------------------------+---------+----------------------------------------------+
日付の列の種類は何ですか? –
'date'カラムにインデックスがありますか? – loganfsmyth
そのような簡単なクエリのための20時間。どのようなモンスターテーブルがありますか? – Magnus