.arg("computer").arg(ip));
我在子线程里面执行这一句时,用打印出执行到这段代码耗时为几百个ms.请问是什么导致呢,我的数据是从网络接收到数据,然后再更新到数据库里面,以前也是这样写的,没有耗时那么高?坐=大神回答..感激不尽
4 个解决方案
#1
几百ms是包括了网络接收数据吗?如果是的话,肯定是在接收上面有点问题,至少,在更新数据库的过程我认为是不会又什么影响的
#2
1、本身数据库修改比查询消耗更多时间,尤其如果你涉及到修改很多条记录的时候
2、你如果把query一次编译多次运行会更快些。也就是:使用占位符,然后prepare.然后addBindValue来exec
3、大多数情况下,你的这个慢跟你目前的代码关系不大。跟逻辑,网络环境等有关系
2、你如果把query一次编译多次运行会更快些。也就是:使用占位符,然后prepare.然后addBindValue来exec
3、大多数情况下,你的这个慢跟你目前的代码关系不大。跟逻辑,网络环境等有关系
#3
数据是来自于网络,但我在只打印那条数据库执行的时间,确实是用了几百毫秒,这应该不是跟网络来的数据有关了吧.?
#4
这里没有打印的语句吧。
实际上我猜你打印语句应该在查询语句之后。
那么逐个分析瓶颈在哪儿。
QElapsedTimer可以帮助你。
#1
几百ms是包括了网络接收数据吗?如果是的话,肯定是在接收上面有点问题,至少,在更新数据库的过程我认为是不会又什么影响的
#2
1、本身数据库修改比查询消耗更多时间,尤其如果你涉及到修改很多条记录的时候
2、你如果把query一次编译多次运行会更快些。也就是:使用占位符,然后prepare.然后addBindValue来exec
3、大多数情况下,你的这个慢跟你目前的代码关系不大。跟逻辑,网络环境等有关系
2、你如果把query一次编译多次运行会更快些。也就是:使用占位符,然后prepare.然后addBindValue来exec
3、大多数情况下,你的这个慢跟你目前的代码关系不大。跟逻辑,网络环境等有关系
#3
数据是来自于网络,但我在只打印那条数据库执行的时间,确实是用了几百毫秒,这应该不是跟网络来的数据有关了吧.?
#4
这里没有打印的语句吧。
实际上我猜你打印语句应该在查询语句之后。
那么逐个分析瓶颈在哪儿。
QElapsedTimer可以帮助你。