我有超过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;
现在我正在考虑提取文本字段以减少400 MB并提高性能。像这样:
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来检查这一点。
是否有更好,更简单的方法或工具来比较查询效果?
答案 0 :(得分:0)
这就是我在寻找的东西:
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秒)
...但现在我真的很想知道哪个桌面设计正在使用中并不重要。 混淆