现主要一个问题,每天有大量数据插入这数据表内
有3G文件数据要读取插入这表不知怎办, 这是两个设置了唯一
  UNIQUE KEY `url` (`url`),
  UNIQUE KEY `domain` (`domain`),
插入失败就更新, 现表里已存在2700W数据了,现批量插入非常慢, 插入时索引去掉了但还是非常慢, 不知怎解决了,希望能给点思路, 更是已经写成批量更新10条数据,还是非常慢慢插入速度太慢了,
下面是表结构
CREATE TABLE IF NOT EXISTS `sk5url_2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `domain` varchar(255) NOT NULL,
  `url` varchar(1000) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `referer` varchar(1000) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `firsttime` datetime NOT NULL,
  `lasttime` datetime NOT NULL,
  `time` int(11) NOT NULL,
  `isurl` int(11) NOT NULL DEFAULT '1',
  `offerid` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `url` (`url`),
  UNIQUE KEY `domain` (`domain`),
  KEY `index_name` (`domain`,`isurl`),
  KEY `sk5url_2_time` (`time`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

解决方案 »

  1.   

    要使用myisam就设置成表尾插入,否则更提倡innodb。
      

  2.   

    首先选择合适大规模读写的MySQL数据引擎 这里推荐innoDB  尤其在批量读写的时候 记得上锁  否者问题还多多冒出来 索引只是利于高速查找 如果是每天定时批量插入的话 也可以用分表 专门用一张表来记录插入量大的数据 思想就跟C++里面的哈希一个意思 表A是数组索引 表B是可增长可快速查找的数据结构
      

  3.   

    url和domain需要unique,不会是在做站点流量统计吧
    解决方案:坚决分表