我有4列,描述爲原始表如下:如何優化使用COUNT(*)和組MySQL查詢BY
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| FieldID | varchar(10) | NO | MUL | NULL | |
| PaperID | varchar(10) | NO | | NULL | |
| RefID | varchar(10) | NO | | NULL | |
| FieldID2 | varchar(10) | NO | MUL | NULL | |
+----------+-------------+------+-----+---------+-------+
我想與COUNT(*)
和GROUP BY
運行查詢:
select FieldID, FieldID2, count(*) from nFPRF75_1 GROUP BY FieldID, FieldID2
我已經在列FieldID和列FieldID2上創建索引,但是,它們似乎無效。我也嘗試過OPTIMIZE table_name
並在這兩列創建了冗餘索引(如其他優化問題所示),但不幸的是它也沒有解決。
以下是我從EXPLAIN
得到:
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+------+---------------+------+---------+------+----------+---------------------------------+
| 1 | SIMPLE | nFPRF75_1 | ALL | NULL | NULL | NULL | NULL | 90412507 | Using temporary; Using filesort |
我不知道是否有反正我可以在此查詢,或其他任何方式來優化其使用索引。現在它的效率很低,因爲有很多線路。
非常感謝您的幫助!
你可以參考這個問題http://stackoverflow.com/questions/3915574/mysql-optimization-group-by-multiple-keys –