我的表:
CREATE TABLE `html` (
`html_id` int(10) unsigned NOT NULL,
`links_id` int(10) unsigned NOT NULL,
`url` varchar(2000) DEFAULT NULL,
`tld` varchar(10) DEFAULT NULL,
....
`html` mediumtext
PRIMARY KEY (`html_id`,`links_id`),
UNIQUE KEY `links_id_url_index` (`links_id`,`url`(255))
) DEFAULT CHARSET=utf8;
html
列SELECT tld, MAX(URL), count(*) FROM html GROUP BY tld
该表还必须承受来自多线程c ++网络爬虫的许多插入(> 500 / s)(html_id,links_id)
& (links_id,url(255))
密钥检查,并且在此配置中它可以正常工作,但通过添加其他密钥,我担心它可能会降低它。
从我的所有测试中可以看出,大html
列是查询速度慢的原因,最好的方法是什么?
答案 0 :(得分:1)
将html列移动到另一个表。另外,为什么要在varchar列上运行MAX()?