我在使用GROUP BY
方法的查询时遇到了一些问题。查询似乎需要很长时间才能执行,有时会占用服务器上的所有内存。我检查了tmp目录,它有足够的空间,所以我不确定下一步该看哪里。
以下是查询:
SELECT count(p.id) AS total, p.user_id, u.username
FROM posts p
INNER JOIN users u
ON (p.user_id = u.id)
WHERE p.timeposted >= :time
AND p.user_id <> '2246'
GROUP BY p.user_id
ORDER BY total DESC
LIMIT 5
以下是我的posts
表:
CREATE TABLE `posts` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`post_id` int(11) NOT NULL,
`timeposted` int(11) NOT NULL COMMENT '11',
`brand` varchar(150) NOT NULL,
`postcontent` text NOT NULL,
`category` int(11) NOT NULL,
`album` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Indexes for table `posts`
--
ALTER TABLE `posts`
ADD PRIMARY KEY (`id`),
ADD KEY `user_id` (`user_id`),
ADD KEY `category` (`category`),
ADD KEY `post_id` (`post_id`),
ADD KEY `album` (`album`)
有关可能导致此查询被阻塞的内容的任何想法?