On Mon, Apr 27, 2009 at 10:25 PM, liubin liu <7101...@sina.com> wrote:
>
> thanks
>
> I'm not sure of the real reason.
> It's true that the speed of inserting with transaction is very fast. But my
> project is using SQLite mainly in selecting something. I don't know how to
> use transaction in the situation. May some friends give me some codes on
> that?
>

As someone else mentioned, you probably don't want to open/close the
database every time you do a single SELECT.  In the example you're
doing 100,000 iterations of open/exec/close, which will give pretty
terrible performance.

Instead, try creating an initialization call, which opens the
database, prepare()s your SELECT stmt (with a '?' placeholder for the
ID in this example), and returns a handle to the caller.  The caller
can then loop 100,000 times calling getdata() with this handle.
getdata() can just do sqlite3_bind_XXX() followed by sqlite3_step()
(and sqlite3_reset()), which will be _much_ faster than
sqlite3_exec().

-- 
Matthew L. Creech
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to