在mysql查询中GROUP BY的性能问题

时间:2017-07-11 02:36:59

标签: mysql

我在使用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`)

有关可能导致此查询被阻塞的内容的任何想法?

0 个答案:

没有答案