0

適切なインデックスまたはインデックスをまったく使用していないクエリに問題があります。

これが私のテーブル作成です

CREATE TABLE `data` (
 `data_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `other_id` int(10) unsigned NOT NULL,
 `author_text` varchar(255) DEFAULT NULL,
 `sometext` text NOT NULL,
 `somehash` char(32) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
 `longurl` varchar(255) NOT NULL,
 `published` int(11) NOT NULL,
 `language` varchar(3) DEFAULT NULL,
 `level` enum('-1','0','1','2') CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT '2',
 `day` int(11) NOT NULL,
 `processed` tinyint(4) NOT NULL DEFAULT '0',
 PRIMARY KEY (`data_id`),
 UNIQUE KEY `unique_url` (`other_id`,`somehash`),
 KEY `processed` (`processed`),
 KEY `language` (`day`,`language`)
) ENGINE=MyISAM AUTO_INCREMENT=2576573 DEFAULT CHARSET=utf8

クエリ

SELECT COUNT( * ) AS `num` , `data`.`language` AS `language`
FROM `data`
WHERE `data`.`author_text` LIKE '%test%'
AND `data`.`day`
BETWEEN '1364342400'
AND '1372118399'
GROUP BY `data`.`language`
ORDER BY `data`.`language` ASC 

説明する

id|select_type|table|type|possible_keys|key |key_len|ref |rows   |Extra
--|-----------|-----|----|-------------|----|-------|----|-------|--------------------------------------------
1 |SIMPLE     |data |ALL |language     |NULL|NULL   |NULL|2563731|Using where; Using temporary; Using filesort
4

0 に答える 0