做了一个采集程序 每2个小时去  查抓数据现在是先将数据插入临时表中   先判断  正式表中是否存在 该条记录   根据某个唯一字段判定改条记录是否存在存在直接更新该表  否则  插入临时表
最后 将临时表的数据 转移到 正式表  现在  采集的时候  数据库  占cpu很高  请问如何做延时插入  来缓解占用资源过高的 问题$itemurl = $items[items_url];
//echo $items[addr];
$itemfind = $db -> get_one("select id from {$tablepre}items where items_url='$itemurl'");
if (!$itemfind) {
           // grabImage($items[items_pic]);
    $tempitemfind=$db -> get_one("select id from {$tablepre}tempitems where items_url='$itemurl'");
if(!$tempitemfind){
    $items[addr]=strip_tags($items[addr]);
    $items[describe]=strip_tags($items[describe]); //echo $items[addr];
$items[state]=1;
$db -> insert("{$tablepre}tempitems", $items);
}
} else {
unset($items[items_url]); //echo $items[addr];
    $items[addr]=strip_tags($items[addr]);
    $items[describe]=strip_tags($items[describe]);
$db -> update("{$tablepre}items", $items, "items_url='$itemurl'");

解决方案 »

  1.   

    你用的开发语言没有sleep之类的函数吗?
      

  2.   

    SLEEP(duration) 
    睡眠(暂停) 时间为duration 参数给定的秒数,然后返回 0。若 SLEEP() 被中断,它会返回 1。 duration 或许或包括一个给定的以微秒为单位的分数部分。
      

  3.   


    数据库里面不好实现延时insert,楼主最好在应用里实现。
      

  4.   

    sleep(1000) ,开发语言中的,延时1秒select sleep(1),mysql中的,也是1秒
      

  5.   


    insert into tb values(1);
    select sleep(1) #延时1 second
    insert into tb values(2);