有万+条数据要连续读写, sql 操作类中加了 open 和 close ,每条数据都会 open 下,写完再 close ……虽然这流程很标准,但我想这种连续性写入是不是可以不用 close 了?
现在软件跑一段时间后就会停止工作,查看错误日志时 sql 的问题……
现在软件跑一段时间后就会停止工作,查看错误日志时 sql 的问题……
1
Tom008 Mar 4, 2017 via iPhone
这情况不是要数据库连接池吗
|
2
m31271n Mar 4, 2017
不需要频繁的 open / close 连接,因为这很消耗系统资源。
我的做法是:在内部缓存池中维护数据连接,当不再需要某连接时,就将其放回到连接池中,供下一个请求使用。 关于停止工作的问题:对系统资源做些监控,跟数据库日志的时间和信息进行对比,来定位为题。 |
4
huiyue Mar 4, 2017
不需要事务?
|
5
zeraba Mar 4, 2017 via Android
用事务啊
|
6
ebony0319 Mar 4, 2017
关键字:连接池。
还有一个就是静态类,只打开一次。 |
7
chaleaoch Mar 4, 2017
搭楼请教另一个问题, 什么是 cursor,游标?
cursor 存在的意义是什么. 例如我 connect 一个 db 之后,还要在获取一个 cursor,然后用这个句柄去 execute 或者 fetchall 什么的.最后 close cursor,close db, 在这里我们会发现,cursor 和 db 的功能是重复的.open/connect 了两遍,close 了两遍. 是不是有什么我不知道的高级用法?导致这个游标是有存在意义的? 谢谢. |
8
greatonce Mar 4, 2017
你应该多想想 “复用” 是什么意思
|
9
m31271n Mar 4, 2017 @chaleaoch 个人理解,游标是数据库中的一种控制结构,用来遍历数据库中的记录。类似于编程语言的迭代器。
举例:一次查询有 10W 条记录,这 10W 条记录都一次读出来,还是一点一点地读呢? (重新开帖,搭什么车) |
11
m31271n Mar 4, 2017 |
15
qile1 Mar 5, 2017 via Android
楼上有没有具体示例,参考下,现在我也是查询每次都打开关闭数据库一次
|