有人帮我想出了这个查询,但它仍然太慢;订单正在减慢它的速度,我不认为它使用我的索引我希望有人可以为我修复它:D 是的,我阅读了手册页,但我无法理解。
询问:
 EXPLAIN SELECT u.id, u.url, u.title, u.numsaves
 FROM urls u
 JOIN tags t ON t.url_id = u.id
 AND t.tag = 'osx'
 ORDER BY u.numsaves DESC
 LIMIT 20 
 Showing rows 20 - 19 ( 20 total, Query took 1.5395 sec) [numsaves: 6130 - 2107]
 id     select_type     table   type    possible_keys   key     key_len     ref     rows    Extra
 1  SIMPLE  t   ref     tag_id  tag_id  767     const   49432   Using where; Using index; Using temporary; Using filesort
 1  SIMPLE  u   eq_ref  PRIMARY,id_numsaves_IX  PRIMARY     4   jcooper_whatrethebest_urls.t.url_id     1   
数据库:
 CREATE TABLE `urls` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `url` text NOT NULL,
 `domain` text,
 `title` text NOT NULL,
 `description` text,
 `numsaves` int(11) NOT NULL,
 `firstsaved` varchar(256) DEFAULT NULL,
 `md5` varchar(255) NOT NULL DEFAULT '',
 PRIMARY KEY (`id`),
 UNIQUE KEY `md5` (`md5`),
 KEY `id_numsaves_IX` (`id`,`numsaves`)
 ) ENGINE=InnoDB AUTO_INCREMENT=2958560 DEFAULT CHARSET=utf8
 CREATE TABLE `tags` (
 `url_id` int(11) DEFAULT NULL,
 `hash` varchar(255) NOT NULL,
 `tag` varchar(255) NOT NULL,
 UNIQUE KEY `tag_id` (`tag`,`url_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8