2

我的桌子:

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;
  • 它的数据总量 > 20 GB(约 1 百万行)
  • 查询主要用于统计,不需要html
  • 前任:SELECT tld, MAX(URL), count(*) FROM html GROUP BY tld

该表还必须承受来自具有(html_id,links_id)&(links_id,url(255))键检查的多线程 c++ 网络爬虫的许多插入 (>500/s),并且在此配置中它工作正常,但通过添加其他键,我担心它会减慢它的速度。

从我所有的测试来看,大html列是导致查询缓慢的原因,最好的方法是什么?

4

1 回答 1

1

将 html 列移动到另一个表。另外,为什么要在 varchar 列上运行 MAX() ?

于 2012-12-13T15:12:49.663 回答