MySQL A Threat To The Big Database Vendors? 477
geekinexile writes: "Bloomberg is running a story on the growth of MySQL as an alternative to the big commercial database systems." The story mentions PostgreSQL as well, and presents a generally positive view of both.
MySQL A threat, hah, tell me another one... (Score:2, Informative)
Now I know everyone's going to jump down my throat with "Hey, that's going to be in 4.x.y" blah blah... these things have been in use since the stone ages, too little too late and the support still isn't on par with Sybase, MsSQL, Oracle, etc..
Re:MySQL A threat, hah, tell me another one... (Score:5, Informative)
well, maybe not MySql, but PostgreSql do
Use InnoDB (Score:2, Informative)
Also, IIRC,
Simon
SAPDB(L/GPL) is more on par with Oracle than MySQL (Score:1, Informative)
http://www.sapdb.org/
It has a lot of the features that MySQL lacks:
http://www.sapdb.org/sap_db_features.htm
http:
Ever tried JDBC with PostgeSQL? If you haven't but are planning to, then you'll have some or lots of troubles depending on what features of JDBC 2.0 you use ( specially with LOBs and no performance benefit with BatchUpdates ):
http://lab.applinet.nl/postgresql-jdbc/
Re:Not for a while. (Score:5, Informative)
The specifications for the TPC benchmarks are freely available -- it's fairly easy to write a client application that follows one of the benchmark specs to test a specific database. contrib/pgbench in the PostgreSQL tree, for example, implements a "TPC-B-like" benchmark.
That's a fairly vague (or rather, inaccurate) term, but if you mean write-ahead logging, then PostgreSQL has done this since version 7.1. Some of the additional enhancements to this feature (such as point in time recovery) are planned for the near future, likely 7.4
This sounds like a complete waste of time, IMHO. Since the database client shouldn't have any idea what the physical representation of the data is, it's not clear to me why this would be an important feature to have. Can you elaborate?
Oh? I haven't heard anything about this...
"Complete" support for SQL92/99 is pretty damn difficult (SQL92 is 650+ pages, SQL99 is 1200+). Nevertheless, PostgreSQL aims to support as much of the standard as possible.
Erm, PostgreSQL uses MVCC, the same concurrency control scheme used by Oracle. It allows for "better than row-level locking" (readers and writers never conflict; one writer only blocks another if they update/delete the same row). In what way is PostgreSQL deficient in this regard?
When exactly does this happen, and what's the exact error message?
Re:MySQL A threat, hah, tell me another one... (Score:2, Informative)
1. It isn't just subselects - the list of *basic* stuff includes views, stored procedures, foreign keys, etc, etc. Note that we're not even getting close to the advanced features like parallelism, bitmap indexes, solid replication, etc, etc.
2. Product & tool selection is driven by a variety of factors - including internal consistency, vendor relationships, staff skill sets, etc. So, while it is true that there are projects simple enough for MySQL (especially embedded databases) - it is also true that most *custom* database applications deserve something better than what we were doing twenty years ago. And at the point in which you have Oracle, MySQL, and then need to install Postgresql - you will be regretting the time to learn a slightly different product, obstacles to reuse, and administrative complexity of having MySQL in the mix.
And lastly - the simplicity of MySQL is largely an illusion - since without transactions, subselects, views, etc you've simply moved the complexity from the database to the application layer. And while sometimes that is fine, the typical result is that simple tasks that could be done in a few lines of code or a few minutes in SQL instead take hours and hundreds of lines of application code.
Standard MySQL disclaimer on slashdot (Score:5, Informative)
Addressing the typical slashdot negativity when MySQL is mentioned...
MySQL, w/ InnoDB tables (binaried as MySQL-Max) supports transactions with row-level locking and multi-versioning. It also supports foreign key constraints to some degree (on delete cascade, IIRC).
MySQL w/ InnoDB is extremely fast, and this isn't just on SELECTs. UPDATE/INSERTs are much faster than in MyISAM tables. Looking back, the turning point where MySQL went from a good database to a great database is when it picked up InnoDB, IMO.
No, MySQL does not yet support stored procedures, subselects, or views. These are coming in 4.1, along with built-in hot backup support. Plus better replication. 4.0 is available now and seemingly stablizing. The biggest buzz is how thrilled people are with the query cache. At the current pace of development I imagine the above mentioned features will appear and stabilize in version 4.1 within 2 years.
Is MySQL an Oracle replacement in all circumstances? Absolutely not, but very often Oracle is wholly unnecessary for many of the tasks it's purchased for. We're currently running MySQL + InnoDB on a 36GB dataset at a load of ~500 queries/sec average against a 3 month period. Approxiamtely 30% of queries are data modifications. This is obviously not an impressive system to many of you, but I'm fairly pleased with it, especially considering that "professionals" have been telling us abandon this toy database for years. Personally, I'm glad we saved the down payment on Ellison's next yacht.
Is MySQL a PostgreSQL replacement? Probably not. There are back and forths about speed and features--PostgreSQL does support more of the features listed above--but I find MySQL to be easier to use and better supported, and the benefits to me of switching are not very apparant. Your mileage may vary. It's not the end of the world to enforce some business logic in the application layer, and it has its own benefits.
MySQL continues to impress us and the support we receive is outstanding. And that was before we even decided to purchase a yearly support contract. I have nothing but praises to sing about MySQL, and I think it can only get better.
Oh and it's free and open source. *shrug*
Re:challenge? (Score:3, Informative)
Agreed. I use MySQL in a few different production environments, and it works great -- speed is good (even on old, old hardware) and the flexibility is excellent (different formats on a per-table basis). However, I find the SQL implementation somewhat lacking.
UNION [mysql.com] support is a little late -- why did it take until 4.0.0 to implement? Furthermore, the lack of subselects [mysql.com] makes everyday activities such as multi-table UPDATEs [mysql.com] a little arcane. (Read the "it can't be done this way" comments on the bottom to see what I mean. AFAIK the only solution is to create a new table, do an INSERT
MySQL also lacks triggers and views -- views are kind of handy, but if given subselects, can usually be done without. Triggers, though, give one a way to enforce logic (say, relational integrity), which would be very nice to have.
Oh well. I really would like to have my cake, but I guess I'll settle for eating it...
Head-in-the-sand journalism (Score:2, Informative)
Most journalists (and 75% of Slashdotters) apparently are ignorant of the advanced features offered by the "big boy" commercial databases they so love to deride; they end up doing all open source databases a disservice by equating all open source databases (in the mind of the pointy-haired boss) with the puppy of the household, MySQL.
Replication (Score:2, Informative)
That's a weakness PostgreSQL (which doesn't do any replication at all) should fix in a future release.
Why not Firebird? (Score:2, Informative)
I mean, in an commercial environment, there's always the reason to have someone to blame if you choose a closed-source solution like Oracle or DB2, so the managers refuse to accept Free Software or Open Source. Plus there are features in Oracle etc. still missing in the free alternatives.
But what about all the small, non-commercial projects? Firebird is really easy to install, it's scalable as hell and is, contrary to MySQL, a real database.
Firebird (Score:3, Informative)
> 2. Supports views
> 3. Supports triggers
> 4. Supports stored procs
> 5. Does most the things that everyone takes for granted with a decent db server
Strange. Am I missing something, or am I just dumb? Firebird (open source version of Interbase from Borland) does all that, and does it well. It runs on Unix, Linux and Windoze (yes, some people need that), works very nice and fast, is reliable, costs exactly nothing, and I use it in quite a few real-world applications.
How come I never hear of it on Slashdot?
Have a look at http://sourceforge.net/projects/firebird/
Ciao,
Klaus
libmysql is LGPL not GPL (Score:4, Informative)
In the case of libmysql (C native-interface library of MySQL), developers are forced to pay so much money for using GPL code(libmysql) in their software as non-GPL state, plus their customers have to pay money for commercial-licensed MySQL server.
Bull. The libmysql client software is NOT GPL but rather Lesser GPL, which allows linking the client software against a proprietary application program. "A license is not required if: You include the MySQL client code in a commercial program. The client part of MySQL is licensed under the LGPL" [mysql.com]. Even then, MySQL with InnoDB is $400 per multi-processor machine [mysql.com], as opposed to MS SQL's $20,000 per processor for the unlimited-client license.
Microsoft doesn't require such license fee when you use OLE/DB etc. to get native access to SQL server.
Yes it does. Microsoft SQL Server is priced based either on the number of processors or on the number of machines that will access the database [microsoft.com].