mysql如何做延时插入

renzaijiang 2011-04-13 01:00:31
做了一个采集程序 每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'");
}
...全文
410 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuoxingyu 2011-04-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 renzaijiang 的回复:]
就是一条语句 延时几秒再执行
[/Quote]

insert into tb values(1);
select sleep(1) #延时1 second
insert into tb values(2);
gungod 2011-04-19
  • 打赏
  • 举报
回复
sleep(1000) ,开发语言中的,延时1秒

select sleep(1),mysql中的,也是1秒
ldb2741 2011-04-14
  • 打赏
  • 举报
回复
crontab
mysqldbd 2011-04-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 renzaijiang 的回复:]
做了一个采集程序 每2个小时去 查抓数据

现在是先将数据插入临时表中 先判断 正式表中是否存在 该条记录 根据某个唯一字段判定改条记录是否存在

存在直接更新该表 否则 插入临时表


最后 将临时表的数据 转移到 正式表



现在 采集的时候 数据库 占cpu很高

请问如何做延时插入 来缓解占用资源过高的 问题

$itemurl = $items[i……
[/Quote]

数据库里面不好实现延时insert,楼主最好在应用里实现。
rucypli 2011-04-13
  • 打赏
  • 举报
回复
SLEEP(duration)
睡眠(暂停) 时间为duration 参数给定的秒数,然后返回 0。若 SLEEP() 被中断,它会返回 1。 duration 或许或包括一个给定的以微秒为单位的分数部分。
yangxiao_jiang 2011-04-13
  • 打赏
  • 举报
回复
你用的开发语言没有sleep之类的函数吗?
renzaijiang 2011-04-13
  • 打赏
  • 举报
回复
就是一条语句 延时几秒再执行

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧