MySQL to Counter Oracle's Purchase of InnoDB 215
Miff writes "Computerworld is reporting that MySQL is hoping to counter Oracle's acquisition of InnoDB by providing its customers with an alternative." From the article: "Axmark said the storage engine is 'pluggable,' meaning other storage engines can be substituted instead. He said the code for InnoDB is under the GPL (General Public License), so 'the code is always out there. It will always be out there.'"
It looks bad, but... (Score:2, Interesting)
I think this could be the big push that they needed to seriously consider teaming up with the Postgres guys, which could be good news for everyone interested.
Re:It looks bad, but... (Score:2)
What is your plan for that, and what do you expect the result to be?
The real problem (Score:5, Informative)
These being availble for use under the GPL and similar licenses helps out everyone who uses MySQL under the GPL. But it doesn't help anyone else out, including MySQL. What MySQL needs is the ability to add something like MVCC to a table type that they own. Oh wait that will never work because MyISAM should be pretty much at odds with the whole concept. I guess it is time to build one from scratch.
So the inevitable outcome is that MySQL will probably have to write a storage engine from scratch that meets all the needs that InnoDB filled.
Re:The real problem (Score:3, Insightful)
This being said, I think that this discussion is important because it helps clear up *why* this acquisition is so bad for MySQL.
There are some other things that bother me about this response:
1) It took so long to occur.
2) No specific details. So this is entirely vaporware as far as I can see.
3) There are *no* alternatives to InnoDB on MySQL (BDB has performance issues, etc).
Re:The real problem (Score:2)
Could you explain what these issues are and why are they not fixed/fixable?
Re:The real problem (Score:2)
More info at http://www.developer.com/db/article.php/2235521 [developer.com]
Re:The real problem (Score:3, Interesting)
But
Oh yeah. Slow.
MySQL's got three big great things going for it: raw disgusting speed, relative simplicity to set up and administer, and the whole dual-license thing. Oh, and with innodb and with the 5.0 release, very nearly everything in the "technically superior" category (as far as most people are concerned) is covered. A lot of the things people bash mysql for are really complaints about the shortcomings of MyISAM instead. Oh,
Re:The real problem (Score:3, Interesting)
MySQL 5 is still lacking a lot, most importantly in the I of ACID. It does not
Re:The real problem (Score:2)
I use LAPP (Score:2)
As rugged as a Lapp. All the better because Linus is a Finn and Lapps and Finns are closely related
Re:The real problem (Score:2)
Re:Try a real 50+ MB MySQL DB Test (Score:2)
Did you analyze table to update the optimiser statistics after adding the rows? Did you have a suitable index? What did EXPLAIN SELECT.. say? Did you try a covering index? Did you try InnoDB, given the lack of any use of a fullt
Re:The real problem (Score:4, Interesting)
The developers who are willing to live with the shortcomings of PHP and MySQL should consider if they really want to develop software. They are just like the people who are willing to live with the shortcomings of VB6 and Jet databases - they live with them because they know nothing else. While the query language of MySQL has improved with the latest releases, it is still not quite on par with, say, PostgreSQL. Do a somewhat complex join and you will see MySQL's speed go down the drain. See what happens when you have lots of concurrent long-running transactions.
MySQL screams "cheap" since its beginning and no amount of engineering will make it look well built. It may look "overbuilt", at best.
Re:The real problem (Score:3, Insightful)
Many people use LAMP because you can get a website hosted for next to nothing using it.
Most of the really cheap places I've seen offer either win32/asp/IIS/sqlserver or LAMP.
There are plenty of things I don't like about mysql 4.x (no sequences, no subselects, etc.) and plenty of things I don't like about php 4.x (lack of type hinting on primitives, no standard DB connectivity layer, etc.). But the workarounds aren't really that bad.
I could be much more prod
Re:The real problem (Score:2)
The cheap hosting options escaped me completely. There are people who are willing to live with PHP and MySQL as far as they don't have to pay too much for it.
All things equal, I prefer either JSF/JSTL/JSP or Zope/Plone. I know what you mean.
Sorry for the collateral damage
Re:The real problem (Score:2)
PHP is great for some things. It is a really great preprocessor. Too bad too many PHP dev's don't get the "it's a preprocessor" thing.
For example, I can create a config template and use PHP to preprocess it based on certain inputs. I have used this to create configuration management scripts before. But in general, PHP is pretty piss poor for about anything other than preprocessing text files (including postscript,
Speaking as a PHP/Perl/Python developer who can code in C when he has to.
Re:The real problem (Score:3, Informative)
From my perspective, MySQL has two things over Postgres. MySQLAdministrator and they don't do silly things with case sensitivity.
OTOH, they only have one advantage over Firebird, MySQLAdministrator. I keep hoping that the guys over at "Firebird - Relational Database for the New Millenium" will wake up and get some good tools out there. If FlameRobin ever matur
Re:The real problem (Score:2)
Can you elaborate on the case sensitivity issue? As far as I can tell the only way PostgreSQL deviates from the standard is by folding to lower case rather than upper case because, well, lower case looks more readable.
MySQL, from what I can tell, has an entirely new backtick ("`") operator. I don't even really know what it does, but to me, that seems silly.
Re:The real problem (Score:2)
Re:The real problem (Score:3, Interesting)
That's what seemed silly to me. I'd be interested to hear the reason for the use of backticks versus double-quote.
Re:The real problem (Score:2)
PgAdmin III is a really nice tool if you want a GUI-based tool.
As for case sensitivity.... What on earth do you mean it doesn't do silly things with case sensitivity? PostgreSQL is almost standards-compliant here by default (except that case is folded to lower rather than upper for unquoted identifiers) while MySQL is anything but that.
As for this comment:
What's not to like? Th
With Oracle's products becoming more affordable .. (Score:2)
Oracle has never been in the business of providing affordable technology. I doubt that this "coming affordable" that you mention is something they are doing by choice. However, if Oracle can find a sneaky way to stop the competition ... perhaps they will be able to stop this process of becoming more affordable. Then, Larry Ellison can get back to having so much extra cash that he feels like a God!
Re:With Oracle's products becoming more affordable (Score:2)
InnoDB (Score:4, Interesting)
Patent Threat (Score:2)
"if Oracle holds patents or licenses for the underlying technology such as algorithms or file structures, "then that could get quite interesting,"
Re:Patent Threat (Score:2)
I don't understand how these theoretical patents come into play.
If Oracle already had patents on technology contained within InnoDB prior to acquiring InnoDB, they didn't need to acquire InnoDB. They could have challenged InnoDB's GPL licensing.
If InnoDB contains patented technology that Oracle now owns as a result of their acquisition of InnoDB, isn't that a moo
Re:Patent Threat (Score:5, Informative)
No. Repeat after me: "patents have nothing to do with copyright!". Write it on the chalkboard 100 times...
There could be patents covering the GPL-licensed code, which InnoDB might not have enforced. Of course, thinking in this way is almost paranoid, but it has happened before, remember GIF?
No matter how GPL'd the code is, if it violates patents, it is illegal to distribute in countries where that patent is valid. If you doubt me, the text of the GPL license itself spells this out for you. And even if you already have a copy, unless it comes with a patent license, it's illegal to run as well.
Re:InnoDB (Score:5, Interesting)
1. Does Oracle need InnoDB? Would Oracle gain features or capabilities they don't already have by incorporating it into their database? If so, then perhaps we're looking at a fork.
2. If InnoDB is forked, does MySQL have the developer talent to continue advancing InnoDB, or will the OSS community do it for them, or will it stagnate?
Re:InnoDB (Score:2, Insightful)
It will take a long time to reach the robustness of the PostgreSQL development project, and I bet a lot of people might switch at this juncture.
Re:Value of the GPL if another buys the brains. (Score:2)
Probably not that much. Most of the brains aren't "for sale". They have their own interests that they work on, which they do, as long as it's still fun, and they have food on the table. A corporate sponsor might provide more time for their pet projects, thus making life easier for them, but it's the love of what they do, and their expertise of what they do, that's getting anything done at all. The corporate sponsing only helps.
Some notabl
Re:InnoDB (Score:5, Interesting)
MySQL makes some of its revenue by selling non-open-source licenses to customers who, for whatever reason, do not widh to publish their contribution.
Now, you can only release code under any license of your choice if you own all the copyrights.
Once Oracle owns the copyrights to InnoDB (and if Oracle does not extend the same relicensing rights to MySQL that InnoDB did), the only option MySQL has is redistributing a derived work under the GPL, they are legally no longer allowed to release under any other license. This in turn cuts off one of their revenue streams.
Don't think so (Score:3, Informative)
Re:Don't think so (Score:2)
Correct! I think MySQL makes some chunk money of companies who embed the MySQL DB or parts of it and redistribute the result. Under the GPL that would be a derived work and hence the source code of the whole thing would have to distributed with the executable code; hence if these companies do not want to distribute their source they'd have to acquire a different fro
Re:Don't think so (Score:2)
Re:What is it with technology and cutlery? (Score:3, Funny)
Re:What is it with technology and cutlery? (Score:2)
Knives, eh?
Don't forget this is SLASHdot!
Oh, man, I can't believe I said that...
Re:What is it with technology and cutlery? (Score:2)
Silly (Score:5, Interesting)
There are other differences. Setup and configuration of MySql is much simpler, and you don't have to go as crazy creating complex partition schemes on your hard disks to get decent performance. But again, that's as it should be -- for simpler projects you want the free alternative.
--
Free 411! 1-800-411-SAVE [1800411save.com]
Re:Silly (Score:2, Insightful)
Oracle could repackage InnDB as a gateway db, with Oracle compatibility to get users hooked on an Oracle product that would later lead to sales.
IMHO, Oracle does not need the technology, as Oracle has tons of capabilities. There is probably another reason why they bought InnoDB. We won't
Re:Silly (Score:2)
When Larry counts his $18 Billion I'm sure he'll call you for advice.
Re:Silly (Score:4, Informative)
(BTW, I don't like Oracle. Any RDBMS that treats an empty string and a NULL as equivalent should be avoided.)
Oracle and MySQL compete in a number of interesting and important markets, and as we all know, application mandates have a tendency to grow as do datasets. So people see MySQL as a growing RDBMS and use it and sometimes get trapped into it by weird MySQLism's. This keeps people with the RDBMS when it is not even close to meeting real requirements and having to code around the deficiencies.
Whether the markets overlap and to what extent, Oracle sees MySQL as a strategic threat.
Re:Silly (Score:2)
Re:Silly (Score:5, Informative)
An empty string is a value; a NULL is the absence of a value.
In fact, in relational theory, according to Chris Date (although Codd himself supported the concept to some degree), NULLs shouldn't exist. This is because a table expresses facts - logical expressions - about an entity or a relationship, and a NULL is not a fact, it is the absence of a fact. An entity or relation about which you do not know the relevant facts should not be in a table which expresses facts about that entity or relation.
NULLS also lead to screwed-up SELECT results sometimes and worse, sometimes you can't detect that the results are screwed up.
This usually produces a religious war discussion, and I don't know enough to argue the case either way, so I won't say anything more about it. I'll just say that with Codd dead, Chris Date is the main man when it comes to relational theory, as far as I can tell, and he makes a good argument against NULLS.
Pick up his book "Database in Depth" published by O'Reilly, which is not really a book for newbies, but does have some fairly clear explanations of the issues. It's smaller and cheaper (by about three-plus times - $30 vs $105) than his college textbook on the subject.
Re:Silly (Score:2)
The argument is, perhaps that field should be normalized into a separate table of visit dates which does not contain an entry for me. That is the true NULL, that it isn't even present in the database.
I think it's more design philosophy than an issue of right/wrong. Ther
Re:Silly (Score:3, Insightful)
Re:Silly (Score:2)
There might be nothing wrong with this approach to your data model. After all, you can always search for gender to rule this out. The information is therefore present.
However, it might make more sense here to break off this column to a separate table so you can track *all* gynecological exams of female patients (or for that matter any primary care visit of any patient). Generally if you have NULL's meaning "not applicable" this
Re:Silly (Score:2)
The concept of no data is an important one, and should not be easily dismissed. I have read many arguments about why it shouldn't exist in relational models (needs to be normalized away, or whatnot), but most of the arguments fall down in the face of implementation considerations.
Let me try an example. Say I have an application that needs to process data in CSV forma
Why NULL's exist (Score:2)
The problem exists
But what do you field optionnal fields with? (Score:2)
I think that it makes more sense to use a null value than an empty string.
Re:But what do you field optionnal fields with? (Score:2)
Why?
How do you differentiate between a woman with an unknown maiden name and a man with no maiden name? If you don't do this then later when you need to do so, you will have ambiguous data in your db.
You have two options here.
You can split the maiden name column into another table where a NULL value means "Unknown" and no value means "No value" or you can use an empty space to indicate that the Maiden Name has no value in the table.
Re:Silly (Score:3, Interesting)
AND
is false.
This mess up a bunch of logic.
For your case above, I'd code the answers something like this:
An answer is represented by a row (question_id, user_id) existing, lacking information is represen
Wrong (Score:2)
Both
0 NULL
is false.
Wrong. These both evaluate to NULL, not false. After all, you can't tell me that you know if an unknown integer or float is greater, less, or equal to 0, right?
With NULL's all your logic is trinary:
TRUE, FALSE, or NULL.
TRUE OR NULL is TRUE (there is no value in place of NULL to make this false)
FALSE OR NULL is NULL (depending on what you put in place of NULL this could be true or false)
FALSE OR FALSE is FALSE (obviously)
NULL is used to create an assumption
Re:Silly (Score:2)
The problem here is that if you go down this road, data integrity enforcement becomes a real nightmare. Tables are logical units which consist of columns which all should belong together. If you have columns that don't always belong with the table, break them off.
In other words, treating each column as a relational set creates many more problems than
Re:Silly (Score:4, Informative)
Say you have a table with a MiddleName column. Using the rule above, if you store NULL, that means you don't know what the person's middle name is. in contrast, if you store the empty string, it means the person doesn't have a middle name.
The distinction is controversial, and some database administrators feel that distinguishing between NULL and the empty string adds unnecessary complexity to an application.
Disclaimer: While I'm confident that I know a little more about databases than the average developer, IANADBA.
Re:Silly (Score:2)
I tend to use NULL to mean that I know that there is no value. Setting a field so that it allows NULL is like saying "not all things of this type have this property". Setting a field NOT NULL says that all things of this type DO or MUST have this property.
This doesn't allow for "I don't know", but some would argue that you shouldn't be storing things you don't know about in a database in the first place. :)
NULLs (Score:2)
But you have a problem doing this because your comparison sematics don't work for the meaning you are attributing to NULL. NULL tends to be used this way though and unfortunately it is an accepted practice
The problem comes from the following issue: W
Re:Silly (Score:2)
I typically use Lucene [apache.org] when I need to perform full-text and other IR-style searches on a data corpus.
Re:Silly (Score:2)
Re:Silly (Score:2)
Re:Silly (Score:5, Insightful)
Re:Silly (Score:2, Insightful)
Now, reality comes in. Get your end users to fill in the forms. Is that done properly ? As far as programs are concerned, they can do that, but, it is not their integrity we need a database for.
Real-life integrity can only be obtained by estimating the integrity of the weakest part of the chain user-application-db. I suppose it's not the database that is critical in most cases. It leaves you to choose any db you think is reasonable for the
Re:Silly (Score:3, Informative)
True, but the purpose of the relational database is to prevent the 'garbage in' part. It relies upon the Data Admin or Data Architect (not the DBA, which is different) knowing the data in the problem domain thoroughly enough to design the database and its constraints so that garbage is not accepted, and the only data that goes in does so according to well-considered business rules and to the relational algebra of the model. Putting data integrity constraints in the
Re:Silly (Score:3, Insightful)
The key phrase to google [google.com] is "disruptive technology". Clayton Christensen is the expert on the topic.
eating up the market?! disruptive?! (Score:2)
And let's be clear. MySQL's database revenues were 0.01% of Oracle's in 2005 based on the Gartner and IDC surveys. Oracle makes in 12 hours what MySQL takes a year to make. And Oracle's growth is not shrinking at the expense of MySQL, not according to any statistics YET anyway. Perhaps it will happen, but a numb
Re:Not silly at all (Score:3, Interesting)
Also, there exist plenty of situations where there are absolute tradeoffs. Making something fast in one case makes it slow in another. While it would be nice for the DB to be able to figure all that out beforehand, in practice it's impossible.
Take a case where a bunch of precomputation is required to make an operation fast (a particular kind of indexing, for example). You have to instruct the DB to d
Re:Not silly at all (Score:5, Insightful)
Actually, neither one of them implicates relational theory properly. Aside from the InnoDB engine, most of MySQL is pathetically incomplete. Without InnoDB, MySQL is worthless with regard to referential integrity, which is a showstopper for any database that requires multiple tables related to each other.
If the company building the Trans-Relational database ever gets off the ground (or failing that, goes open source), perhaps both of them (along with Sybase, SQL Server, Informix, and the OOP DBMSs) will be put out to pasture. The claimed capabilities of that system, implementing a very relationally complete system, would bury even Oracle eventually, if not immediately.
Anybody have any real background info on why the company developing the Transrelational system is having legal and/or financial trouble? Nothing concrete appears to be available on the DbDebunk site or via Google. The whole thing appears to have been hanging fire for a long time.
Re:Not silly at all (Score:3, Interesting)
That means, "any database" pretty much.
The claimed capabilities of that system, implementing a very relationally complete system, would bury even Oracle eventually, if not immediately
I don't think anything short of global nuclear war could "bury Oracle immediately". The installed base of very big DBs on Oracle is just too large.
If the company building the Trans-Relational database ever gets off the ground...
Does anyone have links or insight on thi
Re:Not silly at all (Score:4, Insightful)
Actually, neither one of them implicates relational theory properly. Aside from the InnoDB engine, most of MySQL is pathetically incomplete. Without InnoDB, MySQL is worthless with regard to referential integrity, which is a showstopper for any database that requires multiple tables related to each other.
As the companies using this pathetic database have noticed, 99.9999% works just fine; especially when your application is aware that you don't have a foreign key constraint and yes, the data may be munged 1 time in 1 billion and need to be cleaned.
Re:Not silly at all (Score:2)
No, but Date sure tortur, er teases his readers about it quite a bit in his writings. What's the company's name, and are you sure it is even a company and not just an ad-hoc group of computer scientists? I've just assumed the delay was due to figuring out the finer details, as I suspect it's not as simple to design and implement as Date may have alluded. Would certainly be cool if they open-sourced the TR concepts,
Re:Not silly at all (Score:3, Insightful)
Yes, that's RDBMS theory.
Then the DBMS will use the path which is most optimized for the request.
In the real world, there is no such thing as "most optimized". Optimized for what? Reliability? Portability? Correctness? Features? Code maintenance? Speed? Memory usage? Disk usage? Throughput? Interactivity? Up
Re:Silly (Score:2, Informative)
Then again, you bring up another good point in and of itself. It's very likely that both MySQL and Oracle are looking at each other and considering how to market to the other's primary segment of clients.
But also, both databases are open-source.
Re:Silly (Score:5, Insightful)
In some ways indirect competition is more destructive because it's a positive feedback system. The auto industry takes off in the U.S., so we build lots of infrastructure that make cars more desirable, which means more cars are purchased. However, if one person purchases a Ford that doesn't reduce the desirability of a Chevy to someone else.
That extends to databases easily. For the sake of argument, let's say MySQL users tend to put more code in the applications, and less logic in the database than Oracle users. Then their application no longer has much need for Oracle, reducing the desirability of Oracle, leading to (perhaps) another application built upon the same database system.
[1] I am making a very loose analogy. If you're trying to figure out which database I'm calling public transportation, and why, you've already put more thought into this than I have.
MySQL needs to build their own storage engine (Score:2, Interesting)
Re:MySQL needs to build their own storage engine (Score:3, Insightful)
What causes the problems for some people is the MySQL exposes a different behavior to the user for each storage engine. In other words, the storage engine is not abstracted away from the user, but just the opposite.
Examples include foreign key and transaction behavior on MyISAM tables (that is, the commands are ignored by a MyISAM table) versus the behavior on an InnoDB table
Re:MySQL needs to build their own storage engine (Score:4, Insightful)
The problem is that if you are developing a database with multiple tables related to each other (MySQL DOES want to be considered a "relational" database rather than a mere "file handler"), then you have to have referential integrity (or waste time coding referential integrity yourself - I used to do that with FoxPro back in the day, and it's not fun.)
Most of the MySQL engines don't do referential integrity - which makes them worthless for most "real" database efforts. Only InnoDB enforces foreign key constraints.
If the current version of InnoDB in MySQL 5.x is under GPL, and MySQL AB can continue to develop their own fork, it may not be that big a problem. But if they can't, due to patent or other IP issues, MySQL is in big trouble. In fact, for any serious uses, they're history, and everybody would be advised to turn to PostgreSQL or Firebird - or even Ingres.
Firebird in particular is fast and small and would suit the sort of Web applications that MySQL is known for - except that there isn't much support in Firebird for that sort of thing - but it could be added on if people see the need due to MySQL becoming a liability.
Re:MySQL needs to build their own storage engine (Score:2)
For instance, let's say PostgreSQL offered more than one storage engine. Possible new engines might be:
(1) A table-stored-in-a-btree storage engine. The whole table would be stored in btree with the primary key as the btree key. Range queries would be much faster in some situations due to sequential access. Of course this method has serious costs and is not the best in most situations, but does have performance benefit
Re:MySQL needs to build their own storage engine (Score:2)
It's a feature, maybe it's not useful for you but it might be useful for somebody else.
Other storage engines compared (Score:3, Interesting)
Does anyone know the practical difference in using other storage engines? For example, how does using Berkeley DB (http://dev.mysql.com/doc/refman/5.0/en/bdb-storag e-engine.html [mysql.com]) compare?
Also, how typical are non-InnoDB configurations of MySQL?
Re:Other storage engines compared (Score:2, Flamebait)
Just use PostgreSQL and be happy. As soon as you start having to ask yourself questions about what "storage engine" you're using, or whether your transactions are really coherent, or start thinking maybe you really did need proper modern (OO)RDBMS features, it's time to drop the toy and start using the real option.
Re:Other storage engines compared (Score:5, Interesting)
Re:Other storage engines compared (Score:2)
MySQL is already overkill, but at least it is some kind of standard.
Re:Other storage engines compared (Score:4, Informative)
Use PostgreSQL and you will be happier
Re:Other storage engines compared (Score:3, Insightful)
Re:Other storage engines compared (Score:3, Interesting)
Sure there is. BDB uses page-level locking while Innodb uses snapshot technology.
This means two things:
1: BDB has blocking issues in high-concurrency environments and is thus not suitable for a backend for a higher-traffic RDBMS.
2: You can only support Read Committed transaction level. You cannot support Read Uncommitted, Serializable, and Read Repeatible because you lack the snapshot capability required to make this happen.
So no, BD
Re:Other storage engines compared (Score:2)
Re:Other storage engines compared (Score:2)
I don't know your requirements, but I would *certainly* recommend evaluating it.
It has become quite easy to use, maintain, etc (which it was not 5 years ago) and has become even more powerful. As with all RDBMS's there is a transitional learning curve, but I have found it to be easier with PostgreSQL than with Firebird due to distributed documentation and high quality help on the email lists.
The name of the new storage engine is... (Score:4, Funny)
Oracle are now offering a free version of their DB (Score:3, Informative)
Re:Oracle are now offering a free version of their (Score:3, Insightful)
Different kind of free. You do know there's more than one kind of free, don't you?
Anyway, Oracle XE is actually pretty nice, particularly if you want to throw together a quick web-based app. I wish I could put something together with PostgreSQL/PHP (or whatever) as quickly as I could with Oracle's web forms designer.
Indexing component is key for performance (Score:2, Informative)
Let's hope MySQL AB. find a good replace
Original reasons for using MySQL replaced by... (Score:4, Insightful)
* PostgreSQL wasn't available in a native version on Windows and their developers were still mastering the codebase they inherited (they mastered it around 7.3, before that they tiptoed around making massive changes).
* Firebird wasn't open sourced yet (before summer 2000).
* and SQLite wasn't released either (before summer 2000).
The above 3 conditions are no longer valid.
Many of us use MySQL because so many other software packages are already designed to work with it. Like Windows, it doesn't matter even if better alternatives exist because this one reason alone is most compelling if the software is "good enough".
In other words, the original technical reasons for choosing MySQL over others has been replaced by a compelling new reason: the same reason many people use Microsoft Windows today.
In a nutshell:
* If I want a super fastest lookup table without SQL, I'll use something like cdb or tinycdb.
* If I want a fast and simple database requiring only a tiny subset of SQL, I'll use something like SQLite.
* If I want a modern, full-featured, and free rdbms/ordbms, then I'll use PostgreSQL.
* If I want compatibility with most 3rd-party software, then I'll use MySQL.
Re:Original reasons for using MySQL replaced by... (Score:2)
Whistling in the dark (Score:3, Interesting)
That's true enough, and yet MySQL uses GPL for its free Linux version but a different licence for the Windows version, don't they? They can't just pick up InnoDB and roll it into their Windows release because they don't hold the copyright to be able to release Windows InnoDB under their Windows licence. So, if Oracle kills InnoDB (or starts increasing the price for non-GPL releases) MySQL might have to revisit its business model.
I always liked PostgreSQL better anyways.
Re:Lets hope whatever the alternaterntive...is.... (Score:2)
Interesting. I wasn't aware of the back story. So MySQL was really intended to be a mere "file handler" from the start.
Explains a lot.
Re:Which Database? (Score:4, Informative)
> it looks like a war will be shaping up over the low end of the database market.
I think you're completely right there - the big vendors know that the little databases generate cash too - and mindshare. They can't afford to lose it. This is a market-protection plan for them.
> Besides for being open-source, what advantages do PostgreSQL and MySQL have over Oracles' 10g Express,
> Microsoft's SQL Server 2005 Express, and IBM's proposed DB2 Express?
Well, MySQL is tarnished for a few reasons now:
- future is uncertain due to innodb buy-out
- history of inexplicable data quality and exception handling issues
- dual-licensing complexity
Postgresql is looking much better now:
- they had some performance problems 3-4 years ago, but are now well-beyond that
- is completely free
- starting to get picked up within very large commercial applications
In comparison SQL Server express and Oracle express offer:
- a free database for very small applications
- the opportunity to deploy a tiny database, then replace it with a larger one without any application code changes
- opportunity for vendors and shops to reduce the number of supported databases
DB2 Express offers:
- a low-cost database (last I looked it was around $750/server)
- with much more scalability than sqlserver/oracle express versions:
- no storage limitations
- partitioning is included (via mdc)
- just two cpus (don't know if they can be multi-core or not)
- I think 64-bit memory is supported, but is still limited to 4GB
So, Oracle & SQL Server have one strategy (offer an extremely limited product for free), while DB2 has another (offer a slightly-limited product for less than or about cost of MySQL). IBM might change the DB2 strategy, but I hope they just add a extremely-limited free version, and keep the existing express version.
And this strategy works: I've got oracle, sql server, db2, postgresql, and mysql in our organization, and am standardizing on db2. When we get a small database it uses a cheap db2 license. This keeps my labor costs down (which are far more than the software costs). If it wasn't for the cheaper licensed versions I'd probably be putting all of the small databases on postgresql - and growing that skillbase within the organization.
Re:Which Database? (Score:5, Informative)
Between them, sqlite->postgresql->oracle offer a full database solution for everything from "I want a better config file for my personal scripts" to "I have to run a mission-critical database for a Fortune 500 corporation", and you can't say much fairer than that.
Re:Which Database? (Score:3, Interesting)
NEVER, have I seen such a project which I would refer to as "painless". Oracle is a monolithic beast which requires constant care and feeding by experts who have been so steeped in its ways that they are prohibitively expensive. Oracle perpetuates this situation and
Re:Which Database? (Score:2)
The key is Fortune-500. When your database gets very large you will need full-time administrators watching it. You will need something that scales to big iron (million dollar servers), with good roll-over plans. Oracle does this well. PostgreSQL is great, but it doesn't scale up that far (yet).
For smaller systems (even within Fortun-500) you don't need Oracle, but odds are you have it somewhere, complete with all those admins, so using Oracle isn't a big deal. Sure PostgreSQL could do the job, but
Re:Which Database? (Score:2)
Oracle is no more difficult to maintain than PostreSQL. If you feel otherwise, please cite an example.
Oracle doesn't require "constant care and feeding." In fact, I know of departmental Oracle databases that receive basically no maintenence.
eh? (Score:3)
I know multi-terabyte Oracle DBMS' that run the entire billing and customer systems for some major telecommunication companies are basically run by 2 or 3 people, and they also have a couple dozen minor multi-gigabyte databases to support.
Oracle requires very little care and feeding. It does have a lot of knobs available for twiddling if you need to tu