“Version 4 of MySQL has been in development since 2001. By the time you read this, MySQL 4.0 should be a stable release (or at least be in late-beta — not finished yet, but still quite suitable for development work that you expect to deploy later this year).” Read the article at LinuxMag. On other database news, mSQL 3.3 was released.
What’s New in MySQL 4.0
2002-12-04 Databases 10 Comments
Q: Who was responsible for the LIMIT rows, [offset] syntax for open source SQL, which was first introduced in mSQL? (later used in MySQL and PostgreSQL)
A: Rasmus Lerdorf, creator of PHP. (http://www.lerdorf.com/bio.php)
Wow. They are going to start work on stored procedures. Then when are they going to work on triggers and views? Perhaps in 3 or 4 years we will have an actual database out of mysql. Kinda hard to consider something a database if it has no ability to enforce data integrity whatsoever.
Don’t get me wrong, mysql has its place. Works fine for lots of selecting for basic websites, but I wouldn’t bet many people base their business on it.
Hopefully those features will get implemented soon.
None of the Open Source databases are anywhere near as mature as Oracle or DB2 anyway. I have looked at PostgreSQL, MySQL, SAPDB and Firebird. All have great features and can be used for different situations, but none come close to the 2 major commercial databases.
However, I think MySQL will be the one to rise up and possibly compete on some level. SAPDB, Firebird and PostgreSQL do not have very good support for stored procs. All 3 have different problems, but compared to PL/SQL in oracle they are way behind. I hope MySQL follows in Oracle’s footsteps and makes a procedural language that is very complete with few limitations.
Postgresql supports stored procedures in a very similar fashion to Oracle. I am not familiar with DB2 unfortunately.
I agree that for very high end installations, Oracle and DB2 will be the only two that will compete for many many years.
At least Postgresql, SapDB, and Firebird have some features for the lower end installations. MySQL is missing so many crucial features that should be a non player. I don’t understand all the hype behind MySQL. It has nothing on Postgresql, SapDB, or Firebird. Especially with the new release of Postgresql 7.3.
Mysql is a storage system with a non-standard sql interface, nothing more. It can hardly be called a database, and especially not a relational database.
That said, they are constantly improving it, but I heard they do not allow outside patches to be submitted. Sounds to me like they have a plan to eventually close the source as they are the only people to have altered it. Once everyone is using it, convert it to non-gpl, start charging for new releases. Hope it doesn’t come to that, but they don’t seem to be the most ethical of companies.
There are several reasons to MySQL success :
– it’s simple (to install, to administer, to program for)
– it’s fast under small load (and small loaded servers are 99% of the servers out there). With Innodb (which has row level locking) it should also be fast under big load.
– it works on Windows out of the box (PostgreSQL : take note)
– it has 99% of the features people need, and then some. 99,9% of MySQL users have BBS, blogs, news portal and other stuff. For these applications even transactions are overkill.
– it’s been there for a long time (SAPDB and Firebird are quite new, Postgresql really started to be good at version 7.x)
– easy replication (Postgresl : take note again)
– supported by every serious web host, often for free
– it IS a real relational database : keys, joins, foreign keys, transactions are supported.
– it works !!! No need to vacuum, optise or set up much thing, the default install will handle almost everything out of the box. Creating users or database is easy as it gets with a command line.
PostgreSQL has very limited proc support. The number of parameters was limited to 16, maybe 32 now, but still too little. It also does not allow for exception handling and recovering from simple problems like constraint violations. PostgreSQL also does not support named parameters, passing by name, autonomous transactions, paramaterized cursors, output parms, etc. However, I am a fan of PostgreSQL. I think they have done some great things, but it is not usable to me until they fix the stored proc limits.
I agree that MySQL is not much of a database right now. However, they have added MVCC, row level locking, foreign keys and trasaction support. They are supposed to add procs in the future and I am hoping they emulate Oracle for this. MySQL seems to be the only database serious about competing in the market. However, I hope you are not correct about their tactics with regard to waiting until everyone is using it then change the license. Of course, a fork would probably happen at that point.
About half the things you mention on your list are now handled in PostgreSQL 7.3: ftp://ftp.postgresql.org/pub/README.v7.3
Also, Java will soon become one of the procedural languages handled, so you will have exception handling.
I personally am far more interested in how a DBMS handles its core logic. That, to me, matters more than stored procedures, replication, etc…, which are really not central to the issues of a relational DBMS. PostgreSQL has an incredible level of logical control you can exert over your database, right up to user-defined datatypes and operators. Another nicety are query rewrite RULEs, which are a particularly elegant concept. Combine these in the right way, and there is far less need for stored procedures in the first place. Use these properly and you can accomplish many of the same things that Oracle does in other ways (such as “materialized views”).
I agree that MySQL is easy and robust *for what it does*, but I can’t believe an experienced Oracle user would ever consider MySQL a better contender than PostgreSQL for the enterprise DB space. It’s flabbergasting, really… They haven’t even released a Beta for views, stored procs, constraints, not to mention quite a few issues with existing datatypes (date/time types especially).
By the way, to Betcour above, the PostgreSQL developers have been taking note, and they are working on a native Windows build: (http://archives.postgresql.org/pgsql-hackers/2002-11/msg00375.php . You can download the beta at ftp://126.96.36.199/postgres/ .
None of the items I mentioned have been addressed yet. I have been in contact with Bruce Momjian and Tom Lane throughout the year regarding these and they are on the list.
Stored procs can never be replaced for me by any other functionality. The reason most oracle shops use stored procs is because it gives the DBA control over how the tables are accessed, i.e. some VB developer is not running wild at his own discretion. Secondly, it makes the database language neutral. For years, I have developed our entire systems in stored procs other than the user interface. That way, our python programmers can call the same proc that the legacy cobol systems of our customers use as the same as the command line bash scripts use. I know that no matter how someone interfaces with the database they are using the procs and all of my business rules apply. And don’t think this can be done with triggers. Triggers are the goto of databases. They are only good for validating business rules that are too complex for standard constraints.
I never said that MySQL is a better DB than PostgreSQL. It is not in my opinion. However, I think that MySQL may surpass PostgreSQL in the next few years. But, I will probably be a faithful Oracle user for years to come. It is expensive, but it is best of breed right now. I would like to see PostgreSQL rise to the occasion, it has many features that I really like. But, I think that they disagree that the one of the primary reasons for Oracle’s success is PL/SQL. Until someone replicates the great features of PL/SQL and Oracle’s standard packages then Oracle will rule in the enterprise.
Good points. I agree with all of them. That is what stored procedures should be used for.
I have seen lots of great info on the Hackers mailing list that people are working on. Nested transactions and replication come to mind.
I just don’t understand why anyone would use MySQL instead of Postgresql. Postgresql has everything that mysql has and more.
And to the guy who thinks postgresql is hard to use, perhaps you should try it. And also try Oracle. Then make that comparison. Postgresql is as easy to use as Mysql. Oracle is a bit harder, but granted there are alot more features. Features that for 90% of users are overkill
I am not a database power-user by far, but in this man’s opinion, I think MySQL is great.
I’ve installed it on both Win and Linux platforms with ease.
Very important to me, it’s well documented online, and well chatted on Usenet. These two ‘features’ make it easy for me to figure things out if I run into a snag trying to build a query or employ the features of a new table type.
It’s being improved at what seems an acceptable pace.
It seems a rather safe bet that it’s gonna be around for a very, very long time.
If I need to, it’s simple finding a webhost that supports it.
It just plain works.
For me, that’s more than good enough.