【发布时间】:2019-08-25 03:23:27
【问题描述】:
我正在做一个x 的 for 循环,它是通过 1 个表列出 30-50 个 URL 的列表,以查看是否有任何 URL 匹配 ---(它花费了超过 5 秒 )
关于本系统:
- 这是来自 Heroku.com 的免费数据库,我将其用作测试
- 正如我正在使用的代码上所说的“postgreSQL
- 我正在使用 flask_sqlalchemy
- 我正在运行这个本地托管,所以前端和后端是我的笔记本电脑,它是 i5 1.9ghz 和 8g rams。
- 时间戳差异约为 5 秒,只是为了检查那些 50 个条目 与 1 个在线用户本地
python 代码。
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = "postgres://***"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = "True"
db = SQLAlchemy(app,session_options={"autoflush": False})
class test1(db.Model):
id = db.Column(db.Integer, primary_key = True)
url = db.Column(db.String(255))
code = db.Column(db.String(255))
def __init__ (self,url,code):
self.url = url
self.code = code
x = [url1,url2,url3,url4,....url50]
t2 = datetime.time(datetime.now())
print("before : ",t2)
for key in x:
y = test1.query.filter(test1.url == key).all()
if y:
print('----i got it')
else:
print('no')
t3 = datetime.time(datetime.now())
print("after forloop : ",t3)
我在聊天室里问了很多人,他们中的很多人都有自己不同的怀疑,但没有人能证实为什么一个简单的过程会出现如此巨大的延迟。
【问题讨论】:
-
您的 heroku dyno 位于哪个区域?数据库位于哪个区域?如果一个在欧盟,另一个在美国,那么您的连接会有巨大延迟问题。
-
另外,你确定它甚至连接到数据库。例如,您是否确认数据正在进入数据库?
-
您在 5 秒内执行了 50 个查询。每个查询需要 100 毫秒,包括延迟和开销。
-
您应该对应用程序进行概要分析以查看时间花在了哪里。
-
@za001a: 是的,但是您在 本地 运行烧瓶,而不是在 Heroku 上,对吗?但是数据库在 Heroku 上?
标签: python sql postgresql heroku flask-sqlalchemy