创建事后索引SQLAlchemy

2024-04-27 00:54:31 发布

您现在位置:Python中文网/ 问答频道 /正文

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

result = session.query(MyObject).filter(MyObject.myinteger == 1).all()

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

^{pr2}$

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


Tags: 字符串id数据库sqlsqlalchemysessionresultall
1条回答
网友
1楼 · 发布于 2024-04-27 00:54:31

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

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

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

相关问题 更多 >