【发布时间】:2018-10-30 11:55:30
【问题描述】:
考虑一个带有索引String 字段的声明性 SQLAlchemy 模型:
class User(Base):
name = Column(String(100), index=True, nullable=False)
name 字段区分大小写,这意味着应保留原始大小写,但应支持对索引的高效不区分大小写查询。
在 SQLAlchemy 中实现和实施的最佳方法是什么?
如果需要查询可以使用lower()
session.query(User).filter_by(name=lower('SOME_name'))
但这并不重要,只要解决方案优雅且高效即可。
由于性能要求,使用 ILIKE 和 Postgres 级别的 lower() 的查询是不可接受的,它们已经过测试,对于我的用例而言,它们在大型表上的执行速度不够快。
【问题讨论】:
标签: python postgresql sqlalchemy