sql查询需要很长时间才能执行

时间:2017-02-08 16:08:45

标签: php mysql sql

我编写了这个sql查询,它可以正常工作但需要很长时间才能执行

SELECT trans_files.id, trans_files.game_name, trans_files.file_name,
       COUNT(en_txt.id) as txt_num, COUNT(ar_txt.id) as n_txt_num
FROM trans_files
    LEFT JOIN en_txt ON en_txt.file_id = trans_files.id
    LEFT JOIN ar_txt ON ar_txt.en_text_id = en_txt.id
                     && ar_txt.date = (SELECT MAX(ar_txt.date)
                                       FROM ar_txt
                                       WHERE en_text_id = en_txt.id)
GROUP BY trans_files.id
ORDER BY trans_files.id DESC, trans_files.game_name ASC, trans_files.file_name ASC

...

mysql> select * from ar_txt limit 3;
+----+------------+---------+----------------+---------------------+
| id | en_text_id | user_id | text           | date                |
+----+------------+---------+----------------+---------------------+
|  1 |         16 |       3 | Ϻ┘äÏ▓Ï╣┘è┘à         | 2017-01-24 19:10:19 |
|  2 |         18 |       3 | Ϻ┘äϡϻϺϻ         | 2017-01-24 19:13:36 |
|  3 |          3 |       3 | Ϻ┘äÏÀÏ¿┘èÏ¿┘è        | 2017-01-24 19:15:48 |
+----+------------+---------+----------------+---------------------+

mysql> select * from en_txt limit 3;
+----+---------+------------------+
| id | file_id | text             |
+----+---------+------------------+
|  1 | 2       | Apothecary Cheng |
|  2 | 2       | Blacksmith Ho Li |
|  3 | 2       | Apothecary Sung  |
+----+---------+------------------+


mysql> select * from trans_files limit 3;
+----+-----------+-----------+
| id | game_name | file_name |
+----+-----------+-----------+
|  1 | drb       | skills    |
|  2 | drb       | npcs      |
|  3 | drb       | test      |
+----+-----------+-----------+

在这种情况下我使用PDO和查询来执行它

PHP code

那为什么需要很长时间?

0 个答案:

没有答案