我需要在Google App Engine数据库中存储无向图。 出于优化目的,我打算使用database indexes。 使用Google App Engine,有没有办法定义数据库表的列来创建索引?
我需要进行一些优化,因为我的应用程序在基于内容的项目推荐过滤中使用此存储的无向图。此外,推荐器算法更新某些图形边缘的权重。
如果无法使用数据库索引,请建议另一种方法来减少图表的查询时间。我相信我的算法比图表操作更多的数据检索操作。
PS:我正在使用Python。
答案 0 :(得分:3)
答案 1 :(得分:1)
在相关说明中,向数据存储添加索引将不加速现有查询。如果一个查询需要一个自定义索引,它将不会降级并在没有它的情况下运行得更慢。在添加索引之前,查询根本不会运行。
对于您提到的特定查询select * from edges where vertex1 == x and vertex2 == y
,数据存储区可以在没有自定义索引的情况下运行它。有关详细信息,请参阅this section of the docs。
简而言之,只需运行您需要的查询,不要过多考虑索引或尝试优化,就像您是DBA一样。它不是关系数据库。 :P