用户访问source_slug(例如,the_source_slug)。系统尝试获取其他用户(使用过the_source_slug)之前访问过的其他不同的source_slugs,按最常用的排序方式排序。基本上,系统试图找到具有类似兴趣的用户并显示他们之前访问过的其他页面。
需要优化此查询的帮助:
SELECT DISTINCT(SOURCE_SLUG), COUNT(SOURCE_SLUG) CATCOUNT
FROM topsources
WHERE SOURCE_SLUG <> ?
AND USER_ID IN (SELECT DISTINCT(USER_ID)
FROM topsources WHERE SOURCE_SLUG = ?)
GROUP BY SOURCE_SLUG ORDER BY CATCOUNT DESC
表格结构:
`topsources` (
`USER_ID` varchar(255) NOT NULL,
`DATE_AND_HOUR` varchar(255) NOT NULL,
`UPDATED_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ITEM_ID` int(11) NOT NULL,
`SOURCE_SLUG` varchar(100) NOT NULL,
`FEED_PAGE_URL` varchar(255) NOT NULL,
`CATEGORY_SLUG` varchar(100) NOT NULL,
`REFERRER` varchar(2048) DEFAULT NULL,
PRIMARY KEY (`USER_ID`,`DATE_AND_HOUR`(30),`ITEM_ID`),
KEY `USER_ID` (`USER_ID`),
KEY `FEED_PAGE_URL` (`FEED_PAGE_URL`),
KEY `SOURCE_SLUG` (`SOURCE_SLUG`),
KEY `CATEGORY_SLUG` (`CATEGORY_SLUG`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
答案 0 :(得分:1)