栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使Python / PostgreSQL更快?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使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语句。决不。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号