我有一个PostgreSQL的查询返回的120行{integer, boolean, integer, varchar(255), varchar(255), bigint, text}
运行查询慢得多在数据库中运行psql
完成后约70ms的。Django的cursor.execute(查询)比Postgres数据库
使用python/django与django.db.connection.cursor.execute()
它需要10s在同一台机器上运行。
我试图把所有的行到一个数组,一个字符串(18K字,但只返回第500采用相同的时间),所以只有一个返回行,但没有收获。
任何想法,为什么会出现在从蟒蛇内,并在数据库运行查询这样的大幅放缓?
编辑
我不得不增加work_mem获得在PSQL及时运行的功能。其他函数/查询不显示相同的模式,psql和python之间的区别只有几毫秒。
编辑
砍伐work_mem到1MB显示PSQL和Django的外壳类似的数字。难道django不会在work_mem中设置的内存?
编辑
唉。问题是在psql中设置的work_mem在全局无效,如果我在函数中设置了内存,则该调用是及时的。我想在配置文件中设置它可以在全局工作。
这是怎么测量的?还有什么是你的数据库设置(例如,他们说“本地主机”,或包括完整的主机名)?有关环境,连接,Django安装的任何其他细节? – Tadeck
我在python中使用psql和timeit.Timer中的解释分析。我迄今为止运行的其他查询不显示此模式。服务器在本地运行,所以没有连接,例如localhost,环境是osx mountain lion,我使用的是django 1.3。 – parmenides
它不应该这么慢......我们经常做的是比用那种时间附近没有地方更大的取... –