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?

Reply via email to