如何使PythonPostgreSQL更快?

如何使PythonPostgreSQL更快?,第1张

如何使Python / PostgreSQL更快?

不要浪费时间进行分析。时间总是在数据库 *** 作中。尽可能少做。仅插入的最小数量。

三件事。

一。不要一遍又一遍地选择“日期”,“主机名”和“人”维度。将所有数据一次提取到Python字典中并在内存中使用。不要重复进行单例选择。使用Python。

二。不要更新

具体而言,请勿执行此 *** 作。这是不好的代码,有两个原因。

cursor.execute("UPDATe people SET chats_count = chats_count + 1 WHERe id = '%s'" % person_id)

用简单的SELECT COUNT(*)FROM …代替。从不更新以增加计数。只需使用SELECt语句计算行数即可。[如果无法使用简单的SELECT
COUNT或SELECT COUNT(DISTINCT)来完成此 *** 作,则将丢失一些数据-数据模型应始终提供正确的完整计数。永不更新。]

和。切勿使用字符串替换来构建SQL。完全傻了。

如果由于某种原因

SELECTCOUNT(*)
速度不够快(首先进行基准测试,然后再执行任何la脚 *** 作),则可以将计数结果缓存在另一个表中。在所有负载之后。做一个
SELECTCOUNT(*) FROM whatever GROUP BY whatever
并将其插入到计数表中。不要更新。曾经

三。使用绑定变量。总是。

cursor.execute( "INSERT INTO ... VALUES( %(x)s, %(y)s, %(z)s )", {'x':person_id, 'y':time_to_string(time), 'z':channel,} )

SQL永不更改。值必然会更改,但是SQL永远不会更改。这要快得多。切勿动态构建SQL语句。决不。



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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存