Features. Its a common mantra that PostgreSQL beats MySQL in the features war. Oft-cited is MySQLs lack of stored procedures, subqueries, subselects, cursors and views, and object-oriented table inheritance, for example. Ma Siva Kumar, an entrepreneur who started up a business to develop ERP systems for the leather industry in India, recently told me that his choice to go with PostgreSQL was determined by MySQLs lack of support for foreign keys and stored procedures. Fair enoughMySQL for a long time left out capabilities that are considered by many to be crucial in a robust database. But its been improving on the features front in leaps and bounds for the past few years. For example, MySQL 4.0 picked up the InnoDB storage engine as a standard feature of the server. InnoDB allows ACID-compliant transactions that enable critical transactions, as opposed to the default MyISAM table type, which is fast but not as useful. (Click here for another article by Gilfillan that gives a roadmap of other MySQL 4.0 features that might surprise you.)Has MySQL caught up to PostgreSQL yet, features-wise? Many think not. A typical comment, contributed by Kevin_Stevens and trolled from Slashdot: "Just about every database professional I have met, if they had a gun put to their head by someone and had to set up a free database, they would choose PostgreSQL. MySQL has made some strides, but its just not PostgreSQL." Better yet, read the full thread. Next page: Which database is faster?
Theres more coming, too, in MySQL 5.0, the alpha code that was announced today. Stored procedures support based on SQL:2003, a common standard for syntax, data structures and retrieval processes of SQL databases, is the big news here. The new functionality will also integrate server-side cursor support.