做了一个采集程序 每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'");
}
最后 将临时表的数据 转移到 正式表 现在 采集的时候 数据库 占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'");
}
睡眠(暂停) 时间为duration 参数给定的秒数,然后返回 0。若 SLEEP() 被中断,它会返回 1。 duration 或许或包括一个给定的以微秒为单位的分数部分。
数据库里面不好实现延时insert,楼主最好在应用里实现。
insert into tb values(1);
select sleep(1) #延时1 second
insert into tb values(2);