我有一个使用 SQLAlchemy 查询的 SQL 数据库。当我按数字列过滤查询时,它会很快返回结果。例如:
result = session.query(MyObject).filter(MyObject.myinteger == 1).all()
请注意,这不是类的主要 id,而只是众多变量中的一个。但是,当我尝试按包含 10 个字符串的列过滤查询时,返回查询至少需要一个数量级的时间。例如,查询看起来像这样:
result = session.query(MyObject).filter(MyObject.mystring == 'Q1213W3239').all()
可以加快该过程的一种选择是索引 mystring 列。但是,我不确定这如何与 SQLAlchemy 交互。我相信,如果我在数据库中创建 mystring 的索引,比如使用 webmin (这是我用来管理数据库的),那么数据库将自动使用索引来过滤变量的查询。这是正确的还是我必须以某种方式让 SQLAlchemy 知道索引或通过 SQLAlchemy 告诉数据库使用该索引?