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
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
Hi i've spent the day trying to make this work so i thought i'd see if brighter minds could illuminate the darkness of my night. I'm trying to setup an email archiving system in Zope. I've got the email retrieval setup in an separate python script and a couple of ZClasses setup in Zope to archive/catalog the emails. My problem is getting the parsed email info(to, from, body, etc) from the external script into my Zclasses. i've tried xml-rpc but i keep getting server errors. i connect to the server and try zope.project.archive.addEmail(id) but i keep getting a 500 Internal server error message. addEmail is just a wrapper around the constructor which expects only one parameter the id of the email Zclass object to create( just something to debug before i pass in all the params). So what gives? i can call the method from the web with http://localhost/project/archive/addEmail?id=xx but how do you call a dtml method with args from xml-rpc. fyi i'm using amos's patched xmlrpclib for authentication (i fixed the import errors) i've trying to reimplement this in an external methods but i would really like to know how to do it with xml-rpc. btw Thanks Kapil
Daniel Fairs wrote:
Hi,
I saw a posting today that MySQL was not recommended as an RDBMS for use with Zope.
Yeah that was probably me, not to slam MySQL, it's fast, it's free, and it's stable. It's lack of transactions however means that you have to be aware of and live with the possibilty of inconsistent states of data between MySQL and Zope. For read only operations, or low-write, or if an external application handles inserting your data and Zope only reads it, this is not really a problem. Also, it's only really manifest if you change the database and then change something in Zope and an error occours. If you can isolate your SQL calls as much as possible, then this shouldn't be a problem. -Michel
Yeah that was probably me, not to slam MySQL, it's fast, it's free, and it's stable. It's lack of transactions however means that you have to be aware of and live with the possibilty of inconsistent states of data between MySQL and Zope.
For read only operations, or low-write, or if an external application handles inserting your data and Zope only reads it, this is not really a problem. Also, it's only really manifest if you change the database and then change something in Zope and an error occours. If you can isolate your SQL calls as much as possible, then this shouldn't be a problem.
-Michel
Fortunately MySQL has transactions high up on the todo list (but it's already been there for QUITE A WHILE). -Ragnar
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
I would have to recommend postgresql. I've got a prototype ecommerce site running with Zope at the front, some python in the middle and postgresql at the backend. Currently it is a prototype so we only have about 20,000 items in there at the moment however it seems to work very well. (Once I brushed up on some of my SQL). Check it out at http://www.postgresql.org Cheers, Benno
participants (6)
-
Ben Leslie -
Daniel Fairs -
Kapil V. Thangavelu -
Ken Kinder -
Michel Pelletier -
Ragnar Beer