【发布时间】:2013-04-03 14:44:53
【问题描述】:
我在一个非常大的数据库中有一个 Peewee 数据库模型 Products,它带有一个日期时间字段。 当我想选择具有(插入时间大于 now())的文章时,查询将永远挂起。
class Products(BaseModel):
id = IntegerField()
name= CharField()
inserted = DateTimeField()
class Meta:
db_table = 'products'
Products.select().where(Products.inserted >datetime(2013, 04, 03, 14, 52, 50).strftime("%Y-%m-%d %H:%M:%S"))
我不确定是因为数据库大小(大于 10 GB)还是因为查询样式。
我应该像这样使用 datetime(2013, 04, 03, 14, 52, 50) 还是“2013-04-03 14:52:50”?
【问题讨论】:
-
应该没有需要将
datetime对象格式化为字符串。 SQLAlchemy 知道如何处理datetime对象本身就好了。 -
如果查询需要很长时间,那么这通常是数据库结构的问题。是否有覆盖
inserted列的索引? -
您不需要格式化日期时间——peewee 将处理 python 日期时间对象。我猜你可能需要添加一个索引。
标签: python mysql-python peewee