Ich verwende diese Tabelle (MySQL/Motor: MyISAM):Warum wird GROUP BY auf FULLTEXT INDEX temporär verwendet?
CREATE TABLE `activities` (
`id_activity` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_doc` int(10) unsigned NOT NULL DEFAULT '0',
`node_id` tinytext NOT NULL,
`title` tinytext NOT NULL,
`name` tinytext NOT NULL,
`keywords` tinytext NOT NULL,
`page_type` tinytext NOT NULL,
`page_screen_id` tinytext NOT NULL,
`page_screen_question` tinytext NOT NULL,
PRIMARY KEY (`id_activity`),
KEY `name` (`name`(255)),
FULLTEXT KEY `node_id` (`node_id`,`title`,`name`,`keywords`,`page_type`,`page_screen_id`,`page_screen_question`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
(Es gibt etwa 100.000 Zeilen)
Hier ist meine Frage:
EXPLAIN SELECT 1
FROM `activities`
GROUP BY `node_id`, `title`, `name`, `keywords`, `page_type`, `page_screen_id`, `page_screen_question`;
- id: 1
- select_type: SIMPLE
- tabelle: aktivitäten
- Typ: ALLE
- possible_keys: NULL
- Schlüssel: NULL
- key_len: NULL
- ref: NULL
- Reihen: 613011
- Extra: Verwendung vorübergehend; Mit filesort
Ich verstehe nicht, warum meine Abfrage vorübergehend verwendet ... und ich weiß nicht, wie dies zu vermeiden ... Danke
['In einigen Fällen ist MySQL in der Lage, viel besser zu machen und die Erstellung von temporären Tabellen durch Verwendung des Indexzugriffs zu vermeiden.]] (Http://dev.mysql.com/doc/refman/5.1/en /group-by-optimization.html) –
@DavidStarkey Ich lese dieses Thema, aber es gibt tatsächlich einen Index auf meine 'GROUP BY'-Klausel –
Gibt es einen Grund temporäre ist ein Problem? –