Changes

Jump to: navigation, search

Database Query API

1 byte removed, 03:49, 26 January 2016
Overview
db.select("Person",
["handle", "gramps_id"],
filterwhere=["AND", [("primary_name.surname_list.0.surname", "=", "Smith"),
("primary_name.first_name", "LIKE", "J%")]],
order_by=[("gramps_id", "ASC")])
-------|--------|---------------|----------
BSDDB | 20.6s | 9.2s | 18.1s
DB-API | .3s | 8 .7s 5s | 8 .2s6s
So, where we can access the data via SQL, we can get a speedup, the biggest will always be in the filter as it makes it so we don't have to load into Python many objects. We have linear code in many places that could benefit from using db.select().
Currently DB-API is automatically creating SQL fields and indexes for all regular (non-list, standard Python types) primary-object attributes (like gramps_id, privacy, etc.). This takes time and space. We may want to manage this a bit more carefully.

Navigation menu