Индекс базы данных Google App Engine - PullRequest
2 голосов
/ 18 мая 2010

Мне нужно сохранить неориентированный график в базе данных Google App Engine. В целях оптимизации я думаю использовать индексы базы данных . Используя Google App Engine, есть ли способ определить столбцы таблицы базы данных для создания ее индекса?

Мне понадобится некоторая оптимизация, поскольку мое приложение использует этот сохраненный неориентированный график при контентной фильтрации для рекомендации элемента. Кроме того, алгоритм рекомендации обновляет веса ребер графа.

Если невозможно использовать индексы базы данных, предложите другой метод, чтобы уменьшить время запроса для таблицы графиков. Я считаю, что мой алгоритм выполняет больше операций извлечения данных из таблицы графа, чем операции записи.

PS: я использую Python.

Ответы [ 2 ]

3 голосов
/ 18 мая 2010
1 голос
/ 26 января 2011

вы на самом деле видите слишком медленные запросы? я догадываюсь нет. я подозреваю, что это несколько преждевременная оптимизация. хранилище данных ядра приложения не выполняет никаких операций сортировки, фильтрации, объединения или других значимых операций в памяти, поэтому время запросов обычно довольно постоянное. в частности, задержка запроса не зависит от количества объектов вашего хранилища данных или даже от числа объектов, соответствующих вашему запросу. это зависит только от количества результатов, которые вы запрашиваете.

в соответствующей заметке, добавление индексов в ваше хранилище данных не ускоряет существующие запросы. если для запроса требуется пользовательский индекс, без него он не будет ухудшаться и работать медленнее. запрос просто не будет выполняться, пока вы не добавите индекс.

для указанного вами конкретного запроса, select * from edges where vertex1 == x and vertex2 == y, хранилище данных может запускать его вообще без специального индекса. см. этот раздел документации для более подробной информации.

Короче говоря, просто запустите нужные запросы, и не думайте слишком много об индексах или попытайтесь оптимизировать, как если бы вы были администратором баз данных. это не реляционная база данных. : P

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...