PostgreSQL/performance一个通用游标或为每个查询创建一个

2024-10-01 00:27:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个脚本来在数据库中存储一些数据。我第一次使用PostgeSQL,一切都按计划顺利进行。我在考虑PostgreSQl中游标的用法,如果我做了很多,而一个就足够了。但我不想把光标传递给我所有的SQL函数。在

这是我的简化例子。在

dbConn, dbCurs = openDataBase(config)
doSomeThing(dbCurs, name, age, listOfJohns)

def doSomething(dbCurs, name, age, listOfPoeple):
  listOfPoeple SQLnrOfPeopleNamed(dbCurs, name, age)
  #here some fine checking if there's a list
  #room for more code. etc. etc.

def SQLnrOfPeopleNamed(dbCurs, inpName, inpAge)
  dbCurs.execute(Some SQL-thingy)
  #check and return result

dbCurs是传递给每个包含SQL查询的函数的值。现在dbCurs是非常特定于PostgreSQL的。每当我将这个数据库更改为e.q.MySQL时,我必须重写查询函数SQLnrOfPeople,以及与这些函数的接口。在

我想要的情况是我只需要重写SQL函数的功能。所以,我在考虑在每个SQL函数中创建一个Cursor类并关闭它。这将导致只需要连接的更通用的接口。在

^{pr2}$

但我会创建并关闭更多的光标。我在手册上读到应该没问题,我认为这是一个很好的解决办法。但我还是有点怀疑。在


Tags: 数据函数name脚本数据库agesqldef
1条回答
网友
1楼 · 发布于 2024-10-01 00:27:19

一般来说,按顺序打开和关闭多个游标根本没有问题。您可以将游标视为指向查询结果集的指针(它是指向缓存数据的一组指针)。打开游标分配一个指针,关闭一个指针释放内存。在

总的来说,我认为逻辑上的整洁是最好的,因此每个查询有一个游标是一种方法。在

相关问题 更多 >