需要帮助/工具来比较SQL查询

需要帮助/工具来比较SQL查询,sql,performance,text,compare,Sql,Performance,Text,Compare,我有一个超过400万行的评论表: CREATE TABLE `comments` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `gid` int(11) unsigned NOT NULL DEFAULT '0', `userid` int(6) unsigned DEFAULT NULL, `date` int(11) unsigned DEFAULT NULL, `comment` te

我有一个超过400万行的评论表:

CREATE TABLE `comments` 
(
     `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
     `gid` int(11) unsigned NOT NULL DEFAULT '0',
     `userid` int(6) unsigned DEFAULT NULL,
     `date` int(11) unsigned DEFAULT NULL,
     `comment` text NOT NULL,
     `status` enum('on','alert') NOT NULL DEFAULT 'on',
     PRIMARY KEY (`id`),
     KEY `gid_2` (`gid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
现在我正在考虑提取文本字段,以减少400MB并提高性能。像这样:

CREATE TABLE commentstext 
(
    id int(11) unsigned NOT NULL AUTO_INCREMENT,
    `comment` text NOT NULL,
    PRIMARY KEY (id)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
但我不确定这样做是否会更好。我还需要使用不同的查询来测试这种情况。到目前为止,我的结果差异很大。在0.001*-3.321秒之间。我无法通过在phpmyadmin中查询来检查这一点


有没有更好、更简单的方法或工具来比较查询性能?

这正是我想要的:

SELECT BENCHMARK(1000000000, (
SELECT
comments.comment
FROM
comments
WHERE
`gid`=303410
LIMIT 1
));
结果34.1612秒。 结果32.2737秒

SELECT BENCHMARK(1000000000, (
SELECT
commentstext.comment
FROM
commentsindex,
commentstext
WHERE
`gid`=303410
AND commentsindex.`id` = commentstext.`id`
LIMIT 1
));
结果34.1237秒。 结果34.2914秒

SELECT BENCHMARK(1000000000, (
SELECT
commentstext.comment
FROM
commentsindex
INNER JOIN
commentstext
ON commentstext.`id` = commentsindex.`id`
WHERE
`gid`=303410
LIMIT 1
));
结果32.8471秒。 结果34.7079秒


。。。但现在我真的很想知道,这不重要,哪一个表的设计是在使用。困惑的

您能否再解释一下您认为需要优化的查询?可能会显示代码片段吗?在这个线程中,查询没有那么重要。我需要测试不同的数据库结构。我读过关于Super Smack,SysBench,mybench,。。。但我仍然在寻找一个不那么复杂的解决方案。