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