From: Phillip Gawlowski Date: 2008-05-26T11:11:25+09:00 Subject: Re: Yup, it's call SQLite! :-)) Re: Is there a One TruePostgresinterface? Is Ruby-postgresmaintained? -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Joel VanderWerf wrote: | John Carter wrote: |> But unless one or more of those reasons are biting you hard, the |> simplicity of sqllite is a major win. | | On the subject of sqlite (and tangentially ruby), and with all you smart | folks on the list, a question: | | Does anyone know how to keep sqlite from going to disk so much, or is | that a necessary part of the locking mechanism? Running with strace, the | write() is immediately followed by fsync(). It keeps my disk very busy | for what should be cheap insert operations to the end of a table with no | indexes. Cpu usage is low too (and I'm using SQLite3::Database#prepare | from the sqlite3 gem, to keep query overhead low). Two suggestions: 1) Use indexes, as that will improve your performance, and it might just help with making sure SQLite actually appends directly, instead of seeking a position first. And the performance improvement even with small DBs is remarkable: milliseconds instead of seconds..). 2) Are you using transactions? If you don't use transactions, every insert or update is written to disk immediately, requiring a sync to disk (we don't want inconsistent data). However, with a transaction, every operation gets committed to the DB in one go (which is faster, allows rollbacks in case an operation fails, and should require less fsync() calls). - -- Phillip Gawlowski Twitter: twitter.com/cynicalryan Blog: http://justarubyist.blogspot.com Terminate input by end-of-file or marker, not by count. ~ - The Elements of Programming Style (Kernighan & Plaugher) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkg6HHEACgkQbtAgaoJTgL8ZVACeNM4+TOOBRISib7rlqRoHefNI OFIAnRFavTkTEaIGZKw3It0V95i37yV+ =h05V -----END PGP SIGNATURE-----