[odb-users] Performance issues for large sets

Boris Kolpackov boris at codesynthesis.com
Sat Sep 20 04:30:36 EDT 2014


Hi Quentin,

Quentin Deldycke <quentindeldycke at gmail.com> writes:

> > > Our 'old' system used C-ISAM. It can perform a "while" of 1000 elements
> > > in 0.003s - 0.007s.
> > > The same request with odb iterate this 1000 elements in 1.3s - 2.6s.
> > >
> > > The use of odb views allows me to perform this iteration in 0.01s -
> > > 0.03s.
> >
> > Was the 'old', C-ISAM system using the same MySQL database that you
> > are using with ODB?
> >
>
> No actually it is a different system. Really old school one, but the data
> we are treating are exactly the same beetween both.

Well, if it was a different database, then the above comparison is apples
to oranges. The difference you observe between ODB views and C-ISAM is
because of the different underlying databases, not APIs. I am sure if
you used, say, SQLite instead of MySQL for ODB tests you would get at
least an order of magnitude better performance than C-ISAM.


> I think that lazy pointers are a good option for me. I will just modify
> the way of working so it lazy load when the '->' operator gets used. So
> my users won't need to change their code.

Just keep in mind that when you load a lazy pointer, it has to happen
within a transaction. That's why the ODB lazy pointers don't provide
such implicit loading.

Boris



More information about the odb-users mailing list