QT中query.next()执行速度太慢,怎么办,当使用while(query.next()){}的时候,速度特别慢,怎么解决?

QT中query.next()执行速度太慢,怎么办,当使用while(query.next()){}的时候,速度特别慢,怎么解决?,第1张

影响查询速度的因素是很多的,如:你的查询语句是怎么组装的,是否是又读数据库,又写数据库?有没有文件 *** 作,等等...很多因素。

以前做个试验,使用MySQL插入一万条简单记录,也不过三、五秒时间而已。

我不知道你的事务处理逻辑是怎么样的,不过,一般提高查询速度的方法是:尽量将事务处理逻辑拆分的很细,不要在一个循环中又是读文件,又是写入数据库!将事务处理逻辑拆分好了以后,分别计算时间,看看时间都消耗在了哪里,这样就可以很好的处理了。

首先:进入到自己相应的qt/src/plugins/sqldrivers/mysql 目录下 (我的目录为:S:\QT\4.8.0\src\plugins\sqldrivers\mysql),这个下面有两个文件mysql.pro,一个mian.cpp! 用文本编辑器打开该目录下的mysql.pro文件 在mysql.pro中加入:

INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 5.5\include" LIBS+="C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib"

保存并退出(即你的mysql的include 路径和 lib 下 opt 的 libmysql.lib 路径)

打开Qt 4.8.0 Command Prompt, 编译这个文件

#qmake -o Makefile mysql.pro

提示3条警告信息,但没影响

#mingw32-make (这个网上有好几个编译命令,我的是用nmake)

然后你会发现你的 qt 下这个 qt/plugins/sqldrivers路径(我的路径为S:\QT\4.8.0\plugins\sqldrivers下)下多了四个文件

分别为 libqsqlmysql4.a, libqsqlmysqld4.a, qsqlmysql4.dll,qsqlmysqld4.dll (生成文件不一定是上面四个)这样基本上就编译成功,可以使用 mysql 了!~

最后安全起见再将 mysql下 bin 文件中libmysql.dll文件拷贝到 system32 下面 然后测试:

#include<QtGui>#include<QtSql>#include<cstdlib>

#include<QtGui/QApplication>#include<QtSql/QtSql>boolcreateConnection() {

qDebug()<<"Availabledrivers:"

QStringListdrivers=QSqlDatabase::drivers()foreach(QStringdriver,drivers) qDebug()<<"\t"<<driver

QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL")qDebug()<<"MYSQLdrivervalid?"<<db.isValid()}

intmain(intargc,char*argv[]) {

至于mysql.pro我是在网上下载的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8688880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存