On October 10th, 2007 Anonymous (not verified) says:
Overall an informative post. I know more about PostgreSQL than MySQL, and I have a few comments:
* Slony was built for production deployment from the beginning. It serves the .org and .info TLDs, which is about as "production" as it gets. It's stable, performs well (at least for it's primary use cases), is more granular than most replication systems, and updates can cascade from one slave to another. It is controlled on a per-table level, which is great for the extra control you want in an intensive application, but makes administration more difficult.
* I think there are some misconceptions about VACUUM. "optimize table" is very similar to "VACUUM FULL" in postgresql, but few people use VACUUM FULL at all. VACUUM by itself is what people usually run (or combined with ANALYZE), which doesn't interfere with reads, and it will mark the dead space in the table and indexes for reuse. With each release, VACUUM is becoming less of a burden in postgresql.
* I agree 100% that database performance evaluation is a huge challenge. The application developers' style is likely to favor one database over another, which is a big part of the problem in taking objective measurements.
* Before implementing a replicated system, it's a good idea to do a lot of thinking first. If it's simple async master/slave, you can probably do that without problems, but anything more complicated than that requires a lot of consideration.
* I don't think you can take for granted that MySQL is faster in the general case (I'm not saying you are personally). Back in the days of 7.0 postgresql, that was probably true, but postgresql has come a long way since that time (as has MySQL), and a lot of the improvements have been to performance. Take a look into the 8.3 beta of postgresql, and see how many of the new features are performance-related. I think PostgreSQL is a first-rate competitor against MySQL for performance, and is improving fast.
A few comments
Overall an informative post. I know more about PostgreSQL than MySQL, and I have a few comments:
* Slony was built for production deployment from the beginning. It serves the .org and .info TLDs, which is about as "production" as it gets. It's stable, performs well (at least for it's primary use cases), is more granular than most replication systems, and updates can cascade from one slave to another. It is controlled on a per-table level, which is great for the extra control you want in an intensive application, but makes administration more difficult.
* I think there are some misconceptions about VACUUM. "optimize table" is very similar to "VACUUM FULL" in postgresql, but few people use VACUUM FULL at all. VACUUM by itself is what people usually run (or combined with ANALYZE), which doesn't interfere with reads, and it will mark the dead space in the table and indexes for reuse. With each release, VACUUM is becoming less of a burden in postgresql.
* I agree 100% that database performance evaluation is a huge challenge. The application developers' style is likely to favor one database over another, which is a big part of the problem in taking objective measurements.
* Before implementing a replicated system, it's a good idea to do a lot of thinking first. If it's simple async master/slave, you can probably do that without problems, but anything more complicated than that requires a lot of consideration.
* I don't think you can take for granted that MySQL is faster in the general case (I'm not saying you are personally). Back in the days of 7.0 postgresql, that was probably true, but postgresql has come a long way since that time (as has MySQL), and a lot of the improvements have been to performance. Take a look into the 8.3 beta of postgresql, and see how many of the new features are performance-related. I think PostgreSQL is a first-rate competitor against MySQL for performance, and is improving fast.