//处理1285个代理时间:超时
/*
$query = "
update proxy,worldip
set proxy.code = worldip.code
where proxy.ip > worldip.start and proxy.ip < worldip.end";
*/

//处理1285个代理时间:7秒
$query = "
insert into test
select proxy.ip,worldip.code from proxy,worldip
where proxy.ip > worldip.start and proxy.ip < worldip.end";
mysql_query($query);

$query = "
update proxy,test
set proxy.code = test.code
where proxy.ip = test.ip";
mysql_query($query);worldip包含字段,start,end,code
proxy包含字段,ip,code谁能看出到底是什么问题?
update proxy,worldip
set proxy.code = worldip.code
where proxy.ip > worldip.start and proxy.ip < worldip.end这个语句速度慢的很,运行时间与处理条目数量是成指数增加的
我目前只有导出ip与code到一张中间表,建立对应关系,然后再根据这个对应关系来更新code字段
怀疑是mysql的bug

解决方案 »

  1.   

    $query = "
    insert into test
    select proxy.ip,worldip.code from proxy,worldip
    where proxy.ip > worldip.start and proxy.ip < worldip.end";
    这语句也能执行?
      

  2.   

    update proxy,worldip
    set proxy.code = worldip.code
    where proxy.ip > worldip.start and proxy.ip < worldip.end这种>与<的连接,一般都是较慢的....表结构先拿出来看看,包括索引
      

  3.   

    直接在MYSQL命令行工具中执行并贴出结果explain select * from  proxy,worldip where proxy.ip > worldip.start and proxy.ip < worldip.end;
    show index from worldip ;
    show index from proxy ;