MySQL takes a lot of criticism because it is (a) non-free, (b) non-transactional. Non-fre I won't get into. Non-transactional means that it doesn't support transactions. :) So what are transactions? Say you own a bank and Joe transfers $50 from his checking account to his savings account. The program removes $50 from this checking account, but the disk is out of space and an error occurs putting it into a savings account. Is Joe out $50? Not if it was a "transaction" where all-or-none of a sequence of events happens. If at any point an error occurs in the transaction, everything is rolled back ($50 is back in his checking account and the error is reported). MySQL's lack of transactions rule it out IF you need transactions. Another limitation of MySQL is that it doesn't support very large databases. This usually isn't an issue. Another solution is PostgreSQL, which is a free relational database system (see http://www.postgresql.org). Postgres is very powerful and is probably the most powerful free db by far! There are some drawbacks: * Last I heard, the PYTHON INTERFACE (not PG itself) for postgresql is not threads compliant. You will have to kludge something with locks to use it(?)... any ideas on this one, anyone? * You cannot remove or modify a column on your database. You can rename the column and let it hang, or recreate the table. For changing schemes, this can be a real pain. * Text beyond 16K must be stored in a large object - this is a pain. It has some advantages: * Transactions * Super docs * Great reliability * Most of ANSI SQL Compliance * Stored procedures * Some real nice datatypes for everything from money to geometry Alas, there is Oracle8i. It has some drawbacks: * Installation is a bitch! You usually have to edit kernel header files, recompile, set mount points, apply patches, arg!! * Complexity; Oracle VERY complex even after you get it up and running * The Oracle/ZOPE interface does not have a Setup file for 8i. You'll have to write one to compile it. (Or, email me for the one I got a hold of) * Fewer column types than postgres And the advantages: * Transactions, great reliability, and great SQL support * Java support * Plenty of docs. My favorite Oracle stuff is at photo.net (the web page of some MIT guy) * Good interfacing with Zope, thread safe In general, if you're willing to spend the overhead of a killer learning curve, use Oracle8i. Daniel Fairs wrote:
Hi,
I saw a posting today that MySQL was not recommended as an RDBMS for use with Zope. I'd like to use and external database for storing customers' price lists and product galleries; what (preferably free :) database would people recommend? What are the pros and cons of each?
Thanks, Dan
Daniel Fairs danfairs@hotmail.com
http://listen.to/agentorange http://www.darkalley.co.uk
______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
-- Ken Kinder 303.381.7631