MySQL AB Calls v4.1.7 Production Ready
puppetman writes "MySQL announced a few hours ago that 4.1 has been deemed production ready with the release of 4.1.7.
The major enhancements of 4.1 include sub-selects, faster communication between client and server (thanks to parameter binding), replication over SSL, and lots more. A full list can be found here.
Time to rehash those tired arguments about why MySQL is not a real database, and (Postgres/Oracle/SQL Server/Access/SAPDB/Ingres/etc) is the only real database out there."
Sure, just use the InnoDB storage engine.
Java: the COBOL of the new millenium.
MySQL is fine for load/store operations or other places where complex operations on set are not required. MySQL is not suitable for complex queries.
MySQL is a bit like Windows 98 vs. a multi-user OS with virtual memory. Most people just need a single user computer that holds their email and lets them play games.
However, for those who need the features a multi-user OS they cannot simply hack on those features to Windows 98.
It isn't that MySQL isn't a real database it is just that its feature set severely restricts the tasks it is able to do well.
Yes, you COULD build a bank on MySQL just like Diebold makes Windows 98 based ATM machines.
Whether it is a better idea to simply build your bank on Postgresql or Oracle and pay higher machine / licensing costs is an excersize for the reader.
There are spots where Win98 and MySQL are well suited however, there are a lot of cases where it is completely out classed by other products.
Myself, I'd much rather not use all the features of Postgresql and have them available later than build on Mysql and if I need the feature have to port the application. If I run up against performance limitations of Postgresql I simply buy better hardware.
Not everyones SQL usage is limited to "SELECT * from comments were story_id = 23456"
Hardware is almost always cheaper than a programmer's time.
Does MySQL still silently substitute its best guess when you try and insert an invalid value into a column?
Does MySQL still silently substitute a non-ACID table type when you ask for an ACID table type and it isn't available?
Does MySQL still silently alter the data you insert into varchar columns by stripping trailing spaces?
MySQL used to be riddled with all kinds of behaviours that the MySQL developers thought might be handy in some circumstances, but that silently alter or ignore the programmer's/DBA's instructions and the SQL specifications. Have the developers gained enough of a clue to fix these (intentional, documented) problems?
- Schemas
- Views
- Rules
- Check constraints
- Domains
- Triggers
- Custom datatypes
- Stored procedures in no less than five different programming languages
- Geometric/spatial datatypes and indexes
- Real type safety
- Errors when the alternative is data corruption
- No silent failures
- Enforcing a difference between NOT NULL and DEFAULT directives
- Consistent foreign key enforcement (Target table must also be InnoDB, ON UPDATE does not allow recursive updates on the same table, out of range violations, brain dead implementation of NO ACTION)
- Better transition to Oracle (closer feature parity)
- Substandard transaction support (The time required to roll back a transaction increases in proportion with the number of operations performed during that transaction; Any non-InnoDB tables referenced in the transaction will not rollback)
And have they fixed the bug where CREATE INDEX, DROP INDEX, and most ALTER TABLEs rebuild the whole InnoDB table? It's been a year.And how about bugs like this (http://bugs.mysql.com/bug.php?id=5670) where creating an index destroys the table. Nice.
- I don't need to go outside, my CRT tan'll do me just fine.
Now that MySQL users now talk about how much they enjoy their subselects, a feature which only a couple of years ago was being derided as just extra bloat, how long until 5.0 goes stable?
On that day, the hordes of MySQL developers will raise a chorus singing the praises of their new stored procedures, views and cursors. And behold! They didn't even slow down the product. Blessed be the MySQL programmers!
Until that day however, stored procedures are "useless" and "needlessly complex." The same with views and cursors. They only serve to slow things down. Of course those pesky naysayers of MySQL will point out that those features have been in PostgreSQL and Firebird for years. But no! Our golden calf does not yet support them in production and until it does they are obviously useless bloat.
Do you like it? I call this piece "Ode to a MySQL Fanboy."
- I don't need to go outside, my CRT tan'll do me just fine.