MySQL A Threat To The Big Database Vendors?
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.
1.4.3.1 Using the MySQL Software Under a Commercial License
(snip)
When you link a program with code from the MySQL software or from GPL
released clients and don't want the resulting product to be GPL, maybe because
you want to build a commercial product or keep the added non-GPL code closed
source for other reasons. When purchasing commercial licenses, you are not
using the MySQL software under GPL even though it's the same code.
-----
This means you can't use libmysql in your closed source code.
I love MySQL, love the speed, the accessibility, the ease of deployment and its suitability for small and medium-sized projects. I'm an advocate.
... Nope. ASP and SQL Server. I cried my way to the bank.
...
But -- it can be a tough sell to the big fish.
I was hired by a Fortune 500 financial services and real estate company to do an internal project that really was not challenging development. Essentially, the requirements boiled down to a very hobbled version of Slashcode. I bid the project at X dollars, spec-ing PHP and MySQL, figuring that I was going a bit high for the actual hours involved and that I would make a nice roll of dough if they accepted. But I still knew that given the sheer size of the company, that my bid would be considered a bargain, if not a lowball.
What threw it? MySQL and PHP. What are they? (WHAT ARE THEY?!?!?!) Well, we're going to have to get through Standards and Compliance, issue an exception, and well, we'll see, we just don't know. Okay, said I, I'll do it for four times the cost and implement it entirely from scratch using ASP and SQL Server.
Great! Sold. Damn. And you have to understand I really TRIED. I wrote two papers, directed them to a bunch of links
I believe inroads will continue to be made for open source. I have faith. But I think there's still some time and a lot of tireless advocacy to come
The dirty secret of big databases is that most people don't know how to program them, how to configure them, and don't need most of the features. And even if they get everything right, they still end up with a very costly and complex solution, a solution that likely doesn't perform very well and needs a special DBA to keep it all running. That's why MySQL is successful.
...most people don't need Oracle.
Oracle has been used for a lot of projects where it doesn't really need to be used, usually because the company already had a licence, but sometimes because the project was way over-spec'd.
Don't get me wrong, MySQL doesn't even come close to challenging the benefits of Oracle or DB2 in replication, scalability and so on. However, in applications where you don't need them, MySQL is perfect, especially because it requires no monetary investment. (It requires other kinds of investment, of course, but everything does.)
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
I work for Conectiva (Brazil), involved in a project where a minor telecom company is replacing most of their Ora*le databases to PostgreSQL. Mostly due to cost reduction (should be for a more noble cause, but...)
Note, this is the first step of a big project involving migration to free plataforms everywhere it is possible inside the company.
IMHO it's a good idea, but they must keep in mind that there already are some limitations that I'm sure it'll be solved ASAP. Of course that a little of investment in the FreeSoftware/OpenSource comunity will help a lot too, but this is subject for another project ;o)
-=-=-=-=
I know life isn't fair, but why can't it ever be un-fair in MY favor!?
It's sad how all criticisms of MySQL on slashdot are consistently modded down. Although MySQL is a fine product with a lot going for it - there is plenty to be *legitimately* critical about.
Is it that the MySQL supporters on slashdot are only familar with application programming interfaces to relational databases - and so don't understand the differences between a modern relational database and MySQL? Or are they simply pushing the product that they are most familiar with?
I've been involved in purchases of millions of dollars in relational database software over the last sixteen years; been a DBA on Oracle, Informix, and DB2; and developed on those as well as Sybase, SQL Server, Adabas (SAP-DB), Dbase IV, and Access. And I can say that there are plenty of traditional IT applications that I would try Postgresql out on - just about everything in the OLTP arena that doesn't require massive scalability. And unfortunately, there are far fewer traditional IT database applications that I would recommend MySQL for - it simply lacks too many features that are already available in postgresql, and that in the RealWorld(tm) save your bacon.
Ok, you can mod me down now.
You need to pick a database that suits your needs. For some people MySQL is all that they will ever need. For others, referential integrity, transactions, stored procedures and triggers are a requirement not an option.
I've seen instances where an app was done in Oracle when it should've been done in something like FoxPro v2.6 for DOS, and I've seen apps done in M$ Access97 that should've been done in PostGres/Oracle/Sybase/SQL Server.
Each has its place and should be chosen to fit a business model. Picking a database just because it has the most features is not always the correct solution. Picking a database because it has the least initial cost is also not always the correct solution.
well, maybe not MySql, but PostgreSql do
- Supports subselects
- Supports views
- Supports triggers
- Supports stored procs
and does most the things that everyone takes for granted with a decent db server, because PostgreSql is a decent db server.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?
Data comes in one way and gets read many times and that's the sort of use MySQL's raw speed will blow both postgres and oarcle away at.
I disagree, every test I've ever done or read in the last 3 years, postgres is as fast or faster than MySQL (using reasonable sized data not "100 test records"). Do you have a link to a benchmark on recent versions of each (without magic 3rd party patches)?
Education is a better safeguard of liberty than a standing army.
Edward Everett (1794 - 1865)
Back in the day (about 2-3 years ago) MySQL was a bit of a pain to configure correctly under Linux and a bit moreso under other UNIXen. PostgreSQL was insane. I tried to get it to work on my box, and I'm a C programmer with many years of experience in understanding other people's code and installation systems.
I finally gave up. I got it installed and mostly working, but I just had better things to do and I wasn't at all happy with the number of hand-tweeks that were required. I slapped MySQL in place and never turned back.
I think a lot of folks were in the same boat, but had even less patience for PostgreSQL's difficult installation.
Now, I understand the two are about the same, and both are available with the major Linux distributions. However, now PostgreSQL has to work its way out of the hole its in. Admins like me will be loath to give up the DB we know best in favor of one that burned us, even if it was long ago.
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*
The irony here is that your very post is being stored in a MySQL database on a site that is pretty famous for its high-availability/reliability. /. has about a half million user accounts and is known for overwhelming other sites by simply linking to them. It seems to be working pretty well on this site.
You might have had a point if you'd mentioned that Oracle was more flexible than MySQL. MySQL doesn't have all the features that Oracle has. But if MySQL has the features that are needed for a given project/implementation, then it is a valid option.
"Don't blame me, I voted for Kodos!"
Most database-systems set up by scientific projects I've seen, have been using either Oracle or Microsoft systems. This is of course completely insane considering the need they have, and a total waste of money. Unfortunately many people read a little about databases on sites like /. and start to belive that they are setting up a large database.
After reading this thread, one can easily think that American express is running an averaged sized system with normal demands on security... The truth is that almost no school systems, museums, scientific projects etc. etc. ever need an enterprize solution. An example of the problem is an institut for Marin research in Colombia where they used Oracle. They paid $15.000 each year in licence fees to set up a database for their collections. They wanted to put it on the web and needed to pay $5.000 more. This is a simple task that Mysql, with all it's flaws, easily could manage, and without the need of an experinced Oracle techincian. There are Highschool Linux geeks in Colombia as well...
The overkill in usage of database systems around is probalby enrmous and a very good source of revenue for Oracle and Microsoft. Think about this when you are bashing the lack of advanced features in Mysql. Someone might actually belive you and buy an Oracle licence to run the member database for their local bridge club...
Guys,
Let me offer my view on the Bloomberg article. It is a huge success for the whole open source community that MySQL gets written about in a publication which is for non-techies only. It is an indication that open source development is not in vain - that open source is becoming a viable alternative even in the most conservative IT shops.
So in stead of arguing for and against this or that open source database, let's work together to become even stronger in the business world!
A key reason for MySQL's huge installed base is that Monty and David - the founders - focused on speed, reliability, and ease of management. That's why Bloomberg is writing about MySQL. And that is also the way to find paying customers who make it possible to hire more programmers and further develop the product.
I am sorry if this sounds like marketing speech. We at MySQL AB are working our butts off to conquer the business world. Now as we are doing so, it will benefit all open source databases. Will you help us?
Marten Mickos, CEO, MySQL AB