P Kishor schreef: > On Sun, Oct 18, 2009 at 10:37 AM, Ron Arts <r...@arts-betel.org> wrote: >> Very true Simon, >> >> this has been the fastest way so far and I can do around >> 350000 selects/second this way, using prepared statements >> (on my machine at least), but I need more speed. >> >> That's why I want to skip the SQL processing entirely >> and write a C function that reaches directly into the >> internal memory structures to gets my record from there. > > I might have missed the discussion, but... why don't you ditch SQLite > and use something like Berkeley DB? Sounds to me you need a hash db > instead of an rdbms, especially since you have no need for SQL. >
Well, that's what I use at the moment (I use glib2 g_hash_table()), but now the requirement to accept SQL queries for that database has come up. And I don't want to write my own SQL parser.. Next I tried to add a virtual table driver to SQLite for my database. That worked, but because the application is evolving, columns get added/changed on a regular basis. Currently this means adding the new columns to my C-structures, writing access functions, and recompiling. I don't want to do that, because this means my appl *must* be replaced on every database change, and I'd like to be able to run different versions of it in the wild. I was hoping to make it more dynamic and adaptive to database layout changes. Thanks, Ron > >> thanks, >> Ron >> >> Simon Slavin schreef: >>> On 18 Oct 2009, at 8:37am, Ron Arts wrote: >>> >>>> Is there a way to bypass the virtual machine altogether and reach >>>> directly >>>> into the btree and just retrieve one record by it's oid (primary >>>> integer key), >>>> and return it in a form that would allow taking out the column >>>> values by name? >>> The primary integer key column can always be referred to as the >>> special name ROWID, even if you have assigned it a column name of your >>> own. So you can do >>> >>> SELECT ROWID,myCol1,myCol2 FROM myTable >>> >>> as long as you don't explicitly declare a primary integer key column >>> and then change the values in it. >>> >>> Simon. > > > > > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users