• 3167阅读
  • 17回复

[提问]QSqlTableModel或QSqlQueryModel+TableView一次显示所有数据太慢太慢 [复制链接]

上一主题 下一主题
离线littlebee
 

只看楼主 倒序阅读 楼主  发表于: 2020-08-23
这些模型取数据当一次需求大于256条时,需要用到如下代码才可以一次把全部数据读取出来,但是在实际使用时当数据量一万条时,卡到不能直视,足有七八秒时间,请问这个问题应当怎么解决?
while(model.canFetchMore())  
model.fetchMore();  
离线uidab

只看该作者 1楼 发表于: 2020-08-24
不应该吧,我也是一万多条,没这么慢。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线littlebee

只看该作者 2楼 发表于: 2020-08-24
回 uidab 的帖子
uidab:不应该吧,我也是一万多条,没这么慢。 (2020-08-24 10:32) 

哦,这么看来不知道我哪里是否有点问题,我再找找看原因
离线uidab

只看该作者 3楼 发表于: 2020-08-24
回 littlebee 的帖子
littlebee:哦,这么看来不知道我哪里是否有点问题,我再找找看原因 (2020-08-24 14:07) 

你要是几十万,上百万有点慢还能理解,不过也不会7、8秒。电脑什么配置?
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线littlebee

只看该作者 4楼 发表于: 2020-08-24
回 uidab 的帖子
uidab:你要是几十万,上百万有点慢还能理解,不过也不会7、8秒。电脑什么配置? (2020-08-24 15:05) 

WIN10  I5处理器 8G内存,数据库大概有60多个字端
离线姜小白

只看该作者 5楼 发表于: 2020-08-25
你的TableView里面是否用了QWidget的相关控件做数据展示?
如果有,千万要换掉,很影响速度的!
我整理的一些文章,持续更新中,有兴趣的小伙伴可以关注。
https://xiaozhuanlan.com/sorghum-cpp?rel=sorghum

Qt技术交流:QQ2499971906
离线littlebee

只看该作者 6楼 发表于: 2020-08-25
回 姜小白 的帖子
姜小白:你的TableView里面是否用了QWidget的相关控件做数据展示?
如果有,千万要换掉,很影响速度的! (2020-08-25 08:55) 

啥也没敢用啊,qsqltablemodel  qsqlquerymodel  qsqlrelationalmodel 都试过一样的卡,目前还不知道问题出在哪
离线littlebee

只看该作者 7楼 发表于: 2020-08-25
回 uidab 的帖子
uidab:你要是几十万,上百万有点慢还能理解,不过也不会7、8秒。电脑什么配置? (2020-08-24 15:05) 

会不会要多线程操作?
离线uidab

只看该作者 8楼 发表于: 2020-08-25
回 littlebee 的帖子
littlebee:会不会要多线程操作? (2020-08-25 10:49) 

多线程干啥?
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线littlebee

只看该作者 9楼 发表于: 2020-08-25
回 uidab 的帖子
uidab:多线程干啥? (2020-08-25 11:21) 

读取数据太慢,是不是需要多线程去做?
离线uidab

只看该作者 10楼 发表于: 2020-08-25
回 littlebee 的帖子
littlebee:读取数据太慢,是不是需要多线程去做? (2020-08-25 11:34) 

你这是没看懂MVC过程??
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线littlebee

只看该作者 11楼 发表于: 2020-08-25
回 uidab 的帖子
uidab:你这是没看懂MVC过程?? (2020-08-25 13:42) 

不懂,还望坛主赐教
离线littlebee

只看该作者 12楼 发表于: 2020-08-25
回 uidab 的帖子
uidab:你这是没看懂MVC过程?? (2020-08-25 13:42) 

如果我打开表需要直接定位在最后一条数据的话,请问跟MVC有没关系?
离线qq2632671

只看该作者 13楼 发表于: 2020-08-25
兰州有没有试下用自定义模型,然后用SELECT查询数据库?

我做有关数据库的模型都是自定义模型,不用QSqlQueryModel,因为我觉得数据库各种情况太多了,QSqlQueryModel的查询不一定最符合我的数据库里的表结构

PS:我没看过QSqlQueryModel的源代码,所以查询这块我不太放心,一般都是用自己的SELECT语句去查询的
离线qq2632671

只看该作者 14楼 发表于: 2020-08-25
直接继承QAbctractTableModel(如果你要显示表的数据),然后查询数据函数里用SELECT语句,看看是不是也要怎么多时间。
离线littlebee

只看该作者 15楼 发表于: 2020-08-25
回 uidab 的帖子
uidab:你这是没看懂MVC过程?? (2020-08-25 13:42) 

我知道了,根据实际需求显示一定数量,天啊,这个还得自己动手码代码
离线littlebee

只看该作者 16楼 发表于: 2020-08-25
回 qq2632671 的帖子
qq2632671:直接继承QAbctractTableModel(如果你要显示表的数据),然后查询数据函数里用SELECT语句,看看是不是也要怎么多时间。 (2020-08-25 15:17) 

感觉值得一试,多谢
离线littlebee

只看该作者 17楼 发表于: 2020-08-25
回 qq2632671 的帖子
qq2632671:兰州有没有试下用自定义模型,然后用SELECT查询数据库?
我做有关数据库的模型都是自定义模型,不用QSqlQueryModel,因为我觉得数据库各种情况太多了,QSqlQueryModel的查询不一定最符合我的数据库里的表结构
PS:我没看过QSqlQueryModel的源代码,所以查询这块我不太放心,一般 .. (2020-08-25 15:15) 

我也觉得这个模型操作数据库太令人操心了
快速回复
限100 字节
 
上一个 下一个