PHP无需等待数据库响应即可插入数据库

时间:2015-09-09 09:42:53

标签: php database curl sybase sybase-iq

我必须从我的php代码向数据库插入一些值。但是脚本执行的时间非常昂贵,所以我应该尽快完成脚本。所以我只需要说''我的脚本将数值插入数据库,我不关心它需要多少时间。看起来我可以使用cURL将命令发送到某个*.php文件,该文件将进行插入,但这是最好和最有效的方法吗?

2 个答案:

答案 0 :(得分:1)

你的问题听起来有点像你要尝试用IQ做OLTP。不是IQ的设计目标,但有一种方法可能是你的解决方案:

由于IQ是一个列存储,在写入/更新语句时有很多I / O(在INSERTS(UPDATES)上很慢),因此他们引入了一个名为RLV且IQ16的额外行级版本控制功能。(请记住,一旦字段更新,列存储就会更新完整列。这允许您更改单行而无需等待IQ写回完整列。超时或一些更改后,IQ会自动将更改同步回到列存储。在SELECT语句中,列存储结果与RLV中存储的更改合并。因此,除了一些新的错误代码之外,它对您的应用程序完全透明;) 即使它正在工作,也就是说:它是一种(很酷)的工作,所以它不会使你的OLTP数据库成为智商 - IQ保留了报告问题所需的OLAP数据库 - 但它可以帮助您更快地更改某些数据。但是,您应该开始检查RLV documentation,因为它会将所有内容粘贴到此答案中。

第二种方法可能是在IQ之前设置第二个数据库,该数据库正在为IQ执行所有OLTP工作,并在以后的常规基础上与IQ同步。如果您只需要OLTP数据库中的一小部分数据,这只能运行良好。然而,这个想法类似于RLV正在做的事情,但是DIY和它使用IQ< 16。 (因为你没有提供很多细节,而且它真的是一个广泛的话题,我不知道如何做到这一点。关键字就像外国数据库和数据库工作一样)

答案 1 :(得分:0)

如果您的设置允许,您可以使用INSERT DELAYED命令

  

当客户端使用INSERT DELAYED时,它从服务器处获得了正常的结果   一次,当表不在时,行排队等待插入   由任何其他线程使用。

http://dev.mysql.com/doc/refman/5.6/en/insert-delayed.html