+ SUM查詢我有以下架構表:標引組通過對MySQL的
CREATE TABLE `wordtrend` (
`oid` bigint(20) NOT NULL AUTO_INCREMENT,
`monitorId` bigint(20) DEFAULT NULL,
`nGram` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`nGramWord` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`negatives` bigint(20) DEFAULT NULL,
`neutrals` bigint(20) DEFAULT NULL,
`positives` bigint(20) DEFAULT NULL,
`total` bigint(20) DEFAULT NULL,
`trendCut` datetime DEFAULT NULL,
PRIMARY KEY (`oid`)
) ENGINE=MyISAM
AUTO_INCREMENT=358539
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
是否有可能爲了有效地運行下面的查詢創建索引?
SELECT nGram
, nGramWord
, SUM(total) AS sTotal
, SUM(positives)
, SUM(negatives)
, SUM(neutrals)
FROM WordTrend
WHERE monitorId = 21751021
AND trendCut >= '2011-01-01 00:00:00'
GROUP BY nGram
, nGramWord
ORDER BY sTotal DESC
我們已經嘗試了以下內容:
KEY `RollupIndex` (`monitorId`,`trendCut`)
KEY `RollupIndex2` (`monitorId`,`nGram`,`trendCut`)
,但我們正在「使用哪裏;使用臨時;使用文件排序」的額外列。提前致謝。
查詢返回多少行?需要多少時間才能運行? –
我很好奇這兩個查詢會顯示什麼:'從WordTrend'和'SELECT COUNT(DISTINCT nGram,nGramWord)FROM WordTrend'選擇COUNT(DISTINCT nGram)' –
(警告:它們可能非常慢, nGram,nGramWord)' –