I have done some tests in the past. On sqlite the like operator is slow, slower then the join.
On 30 Giu, 01:38, weheh <[email protected]> wrote: > I have a table 'x' with Field('z'), which is set via a multiselect. > The value will be a string like '|1|2|3|5|8|'. These correspond to the > ids of another table 'z'. > > I'm trying to figure out which would be a faster search: > > 1) use the 'like' operator to match the db.z.id stored in the x.z > field > > or > > 2) first, parse x.z and then create a many-to-many table "foo", which > stores x.id and z.id in order to link the x and z tables. Then, do a > db(db.z.id==8).select(...,left=(db.foo.on(db.foo.x==db.x.id),db.foo.on(db.foo.z==db.z.id)) > > Obviously, the storage overhead of 1 is lower. But is there going to > be any significant speedup from 2?

