首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Fact SQLAlchemy之后创建索引

在Fact SQLAlchemy之后创建索引
EN

Stack Overflow用户
提问于 2014-08-19 05:14:31
回答 1查看 403关注 0票数 0

我有一个使用SQLAlchemy查询的SQL数据库。当我按数字列过滤查询时,它会相当快地返回结果。例如:

代码语言:javascript
复制
result = session.query(MyObject).filter(MyObject.myinteger == 1).all()

请注意,这不是类的主要id,而只是许多变量中的一个。但是,当我尝试按包含10个字符的字符串的列过滤查询时,返回查询的时间至少要长一个数量级。例如,查询将如下所示:

代码语言:javascript
复制
result = session.query(MyObject).filter(MyObject.mystring == 'Q1213W3239').all()

可以加快该过程的一种选择是对mystring列进行索引。然而,我不确定这是如何与SQLAlchemy交互的。我相信,如果我在数据库中创建mystring的索引,比如使用webmin (这是我用来管理数据库的方法),那么数据库将自动使用该索引进行过滤变量的查询。这是正确的吗?或者我必须以某种方式让SQLAlchemy知道索引,或者通过SQLAlchemy告诉数据库使用该索引?

EN

回答 1

Stack Overflow用户

发布于 2014-08-19 07:08:26

如果您使用Webmin或其他工具在数据库中创建索引,SQLAlchemy将自动找到它。

它可能不会自动使用它,即使使用了索引,它也可能不会更快。这取决于几个因素。

另请参阅:http://www.sitepoint.com/using-explain-to-write-better-mysql-queries/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25372143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档