From: Tobias DiPasquale Date: 2001-12-09T16:32:11+09:00 Subject: [ruby-talk:28004] Re: DBI and large result sets Neil Conway wrote: > IIRC, because you pay a speed, memory and disk space penalty over the > default MySQL table type (MyISAM). In exchange, you get transactions, > but if you don't need those (and MySQL users typically don't), then you > may be better of without BDB tables. > > And last I checked, the code for BDB tables wasn't tested as thoroughly > as the code for MyISAM, but that may well have changed. > > (And now, back to your regularly scheduled programming ...) > True, true. MySQL has support for transactions via Berkeley DB (or InnoDB, if you prefer), yes, but they also have something they call atomic operations (since 4.0, I think), which supposedly provide the same ACID propertiesas a traditional transaction, but with a fraction of the resource cost. I have no direct experience with these, you would probably have to hit http://www.MySQL.com and check out their docs for a complete explanation. If you don't have control of your MySQL database (because it is outsourced or something) and you are using Ruby to access it, you can use the PStore class to implement transactional capabilities without relying on Berkeley DB. (it uses Marshal instead of Berkeley DB) You can find docs on PStore here: http://www.rubycentral.com/book/lib_standard.html ( then scroll down to class PStore's definition) -- Tobias DiPasquale Solaris System Administrator Electrical and Computer Engineering Dept. Villanova University mailto: anany@ece.vill.edu tel: 610-519-5109