Has MySQL Forked Beyond Repair? 334
snydeq writes "Fatal Exception's Neil McAllister questions the effect recent developments in the MySQL community will have on MySQL's future in the wake of Oracle's acquisition of Sun. Even before Oracle announced its buyout, there were signs of strain within the MySQL community, with key MySQL employees exiting and forks of the MySQL codebase arising, including Widenius' MariaDB. Now Widenius' Oracle-less Open Database Alliance adds further doubt as to which branch of MySQL will be considered 'official' going forward. 'Forks are a fact of life in the open source community, and arguably an entirely healthy one,' McAllister writes. 'Oracle just better hope it doesn't end up on the wrong side of the fork.' To do so, he suggests Oracle will have to regain the the trust and support of the MySQL community — in other words, 'stop acting like Oracle.'"
Cue postgres fan bois (Score:3, Funny)
In 3, 2, 1
Re:Cue postgres fan bois (Score:5, Insightful)
It now makes far more sense to develop using a different DBMS.
Note: I've never installed or used PostgreSQL.
Re:Cue postgres fan bois (Score:5, Funny)
Or in the case of MySQL, a featureset at all. I keed! I keed!
Re: (Score:3, Insightful)
Re:Cue postgres fan bois (Score:4, Insightful)
When you develop for something, you want to develop for a stable feature set. If there's going to be a dozen forks of a database, it becomes much more work to test all the versions and apply patches.
The very existence of these forks proves MySQL could easily be better, and/or there are major problems with the development method. Either way, it's a sinking ship. OTOH, a dead project provides the ultimate stability.
Re:Cue postgres fan bois (Score:5, Insightful)
Not when it comes to security vulnerabilities.
Re:Cue postgres fan bois (Score:5, Insightful)
Not when it comes to security vulnerabilities.
Not when it comes to security vulnerabilities.
It's stable in respect to security vulnerabilities as well. No need to create new exploits just to keep your malware compatible.
Re: (Score:3, Insightful)
It's not so much fanboys. When you develop for something, you want to develop for a stable feature set. If there's going to be a dozen forks of a database, it becomes much more work to test all the versions and apply patches. It now makes far more sense to develop using a different DBMS.
Microsoft has said exactly the same thing about Linux ..
What will happen is that developers will support one "brand" of MySQL. Just like things are today with Linux distributions.
Most corporate offerings support Only Redhat Enterprise Linux,or SuSE, although their products work (and are run on) different distributions.
That will also probably be the case with MySQL.
Re:Cue postgres fan bois (Score:5, Funny)
It is more accurate to characterize the recent burst of minor MySQL variations as a sporking of the code base.
Re:Cue postgres fan bois (Score:5, Insightful)
Clearly this is a troll but regardless of all other features that MSSQL may have that MySQL doesn't there is one thing that is missing: LIMIT. No, TOP is useless for a lot of stuff and the fact that LIMIT is missing results in lots of painful hacks with nested SELECTs and other crap in stored procedures.
/Mikael
Re:Cue postgres fan bois (Score:4, Insightful)
That's entirely correct. MSSQL has several nice features, but the lack of LIMIT.. well.. really limits its usefulness. The concept of a LIMIT clause is so useful that the lack of it is essentially a dealbreaker. The hacks to implement some sort of limiting using TOP are very inefficient and don't result in any sort of performance increase comparable to the one you get with LIMIT.
Re:Cue postgres fan bois (Score:5, Insightful)
Then again if LIMIT is The Thing that make you choose a DBMS you may as well get a b-tree indexing library and play around with offset by yourself...
Re: (Score:2)
I only come across it occasionally, but several times I have found myself wishing for LEAST and GREATEST functions in T-SQL, like in Oracle. Of course people always suggest creating workarounds via a CLR addin, functions or CASE statements. But really, in both cases, this seems like a trivial feature to implement. C'mon MS!
Re:Cue postgres fan bois (Score:5, Informative)
Clearly this is a troll but regardless of all other features that MSSQL may have that MySQL doesn't there is one thing that is missing: LIMIT.
Perhaps it's because LIMIT isn't ANSI SQL [arvin.dk]? Before SQL-2008, you were supposed to use ROW_NUMBER() for that, which MSSQL does support. And no-one supports SQL-2008 yet.
Re: (Score:3, Informative)
MSSQL supports the (cumbersome) ISO rownumber operator doesn't it? The syntax to apply a limit is a bit bodgy, but it does work neh?
This gets rows 100 through 200.
SELECT * FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber,
Re: (Score:2)
No, that's YourSQL.
Re:Cue postgres fan bois (Score:5, Insightful)
No, that's YourSQL.
No, it's Bill's SQL.
Re: (Score:3, Insightful)
Isn't it really more Steve's SQL these days?
[Insert overdone chair-throwing joke here]
Re:Cue postgres fan bois (Score:4, Funny)
Re: (Score:3, Funny)
ChairSQL.
if you do things it doesn't like, it hurls a table at you, though.
Re: (Score:2, Troll)
It's Bill's SQL which is based back in the way-back on Sybase 10 and is one of the few apps Microsoft hasn't totally trashed since acquisition. The management tools are painful, but no moreso than say Oracle. (Oracle does a lot more, but the pain, oh the pain.)
Re:Cue postgres fan bois (Score:5, Funny)
Re: (Score:3, Informative)
Re: (Score:3, Insightful)
My fundamental issue with MS and databases is that it's just too expensive in terms of money and hardware.
Re:Cue postgres fan bois (Score:5, Interesting)
Have they finally fixed date handling in MSSql server? Personally, I'd say MySQL and MSSql are junk compared to PostgreSQL, but that is just because I have used all three. (I have also used DB2 which beats all three, and Oracle, which is just annoying).
Re: (Score:3, Interesting)
Why doesn't SQL server have BEFORE triggers?
Well, you can use INSTEAD OF triggers. But you still have to do the actual operation in the trigger body, so yes it would be nice if they implemented it. Reality is that features gets prioritized and although it may seem a very popular thing, it's actually not.
Or row-level triggers?
Because the preferred approach with (almost) relational technology is set based instead of row-based? You can still have a row based approach in the body of the trigger if you want with a cursor and a loop. However, in most cases you simply deal with
Re: (Score:3, Insightful)
Have you USED SQL Server? Have you USED Enterprise Manager? Do not say "Yes" Because making the comment you did proves you have not, or that you are an imbecile. Enterprise Manager is quite possibly the single best thing Microsoft has ever turned out. Were it able to interface with other Databases with a fraction of the functionality it currently has, MS would be selling a copy to every damned database developer who values their time. SQL Server might not be ORACLE for scalability, but it comes real close,
Re:Cue postgres fan bois (Score:4, Interesting)
I had to work with MS SQL for almost two years for a living and used enterprise manager daily and I have to say that I was terribly unimpressed. Granted, I didn't use all of it's features, but it largely struck me as a clutch around the incompetence of its users.
The most impressive uses I saw for it was using it to pipe data to another server and scheduling backups. In Linux I could do both with cron/python or simple mysql scripts or a web service and apache etc.
Enterprise manager is essentially another "programming by gui" tool for people who can't use a command line or write scripts who surprisingly --considering they are programmers-- constitute the majority of my coworkers, except for a java guy (a solaris fan) and a php guy (another linux fan).
Needless to say we used to run circles around the other developers, and I am a lazy ass slacker.
Re: (Score:3, Insightful)
Oracle needs to cater to business not the communit (Score:2, Insightful)
If Oracle provides what business needs/wants .. and that's what they have been doing thus far. They will be fine. Nothing to see hear move along.
Re:Oracle needs to cater to business not the commu (Score:5, Interesting)
Re:Oracle needs to cater to business not the commu (Score:4, Interesting)
Funny you should say that. We're working on dumping Oracle licenses where they're not needed in favor of MySQL. That was going to be expanding our Sun support contract. Oddly enough - it might end up expanding our Oracle contract. That is, unless Oracle gives us reason to look elsewhere for MySQL support.
Re:Oracle needs to cater to business not the commu (Score:5, Interesting)
Your company must be run by morons.
Obviously. In fact, the people who run Wikipedia, craigslist, youtube, Slashdot, Apple, Cisco, Cray, Dell, Intel, HP, Motorola, NEC, TI, Xerox, Adobe, Symantec, Novell, McAfee, Citrix, Continental, Orbitz, Priceline, Amazon, ebay, Google, iStockphoto, Pricegrabber, Yahoo, ZipRealty, Linden, Audiogalaxy, Digg, del.icio.us, Facebook, Flickr, Freshmeat, LinkedIn, Photobucket, Stumbleupon, Twitter, and WordPress are clearly morons for using MySQL. These people don't know anything about databases.
In fact, I'm pretty sure you're the only person who's not a moron.
Re: (Score:3, Funny)
haha that sounded like the 'things I care more about than you' rant by Dr Cox in Scrubs! ... oh wait, I'm the only one that watches that show
Re:Oracle needs to cater to business not the commu (Score:4, Informative)
Wikipedia
Is 99% cached content, served as effectively static files
Google
Has some developers who have it installed; none of their major services are based on it
Facebook
According to the video of how it works, is basically a graph database, on top of a giant key:value table, on top of memcache, on top of mysql -- ie, they do their best to avoid actually hitting the database, and when they do, they only make use of the most basic functions (and it isn't even good enough for that, so they're working on a replacement)
Twitter
While large, it's hardly complicated in terms of database schema, and it /still/ falls over all the time :P
The other sites, I've never seen any behind the scenes reports on.
While "we have at least one copy of mysql installed somewhere in our organisation" is common, "we are using mysql as the central database for our heavily stressed mission critical systems, and it works great" is much rarer :-P
Re:Oracle needs to cater to business not the commu (Score:5, Interesting)
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
Re:Oracle needs to cater to business not the commu (Score:5, Informative)
I've heard the arguments that postgres is as easy as MySQL, and they're bullshit.
Lets see:
Postgres has no good GUI applications that can compare with MySQL's
Why you need more than one is beyond me. Isn't Pgadmin [pgadmin.org] enough?
their command line application is just as good in its own way
Well, ok. Whatever 'in its own way' means.
and the market share that ensures you need to google multiple times to find the info you're looking for.
Postgres has some of the best documentation of any open source project I've seen [postgresql.org]. Sure, MySQL is good as well, but lets not spread bullshit here.
Installing postgres is also a nightmare compared to MySQL.
You mean in a download-the-msi-and-double-click-on-it way, or the apt-get-install-it way?
To sum up: free > $millions, easy > full-featured (in many circumstances).
Well, it's fully-featured, but not necessarily all of those features at the same time. Try doing full-text indexing on a database with foreign-keys on it in MySQL sometime.
Re: (Score:2)
Really? I'm more tempted to think that whichever fork becomes the version in Debian (by being cooperative with the community, having the best features, whilst not going against free software policies) will be the one that gains momentum. It's hard to beat being available at the touch of a button in both a popular server-grade OS, and it's popular desktop-grade of
Already Planning my project for MariaDB (Score:3, Interesting)
From my understanding, it already supports PHP and is far faster than 5.1.
Re:Already Planning my project for MariaDB (Score:5, Interesting)
I'd hope that in the short to mid term, neither side of the fork introduces something that would make either one become incompatible. That may happen eventually, but I think if one side does that too soon, it will be the end of their fork.
I think a fork here is certainly an appropriate action, but I hope that the ODA people don't go so far down the "we're not Oracle path," that they end up on the wrong side of existing users.
I personally support well over a hundred major MySQL installations right now which serve content, and my company operates hundreds more. So, obviously, any talk of divided support makes me uneasy.
In the short term, we're likely to stay with the official MySQL, but we are very interested in not getting stuck in vendor lock-in or abandonment. We definitely are trying to get away from Sybase and Oracle DBs as much as possible, so the Oracle purchase concerns me. As long as we don't have to re-code to move to Maria, it will always remain an option.
And who knows, if its faster and better, it may be a no-brainer to switch to it even if MySQL does not get marginalized or subverted. Still, that is only something that is going to happen after a full evaluation period with both sides of the fork. In the meantime, they need to be interchangeable enough so all my code on one works on the other. I cannot stress that enough.
Re:Already Planning my project for MariaDB (Score:4, Informative)
If they make improvements and Oracle refuses to be part of the community, then guess who is going to have the better version in the long run? I'm putting my money on that community of developers rather than the company with the overblown ego. We all know how companies with overblown ego react to the open source community after all.
Re: (Score:2)
It is going to be Drizzle and they are going to do it quickly. The embedded market doesn't care as much about uniform compatibility if they need performance. Maria OTOH will stay very close to MySQL legacy and the main MySQL (unless they pick up a large percentage of mindshare). So I'd expect the main MySQL and MariaDB to codeshare if both projects are doing well while expect Drizzle to fork off and never come back.
Fork it (Score:5, Funny)
If I could only think up a cliched pun using the term forked, I would be sure to get the converted +5 funny mod.
If only.
Re: (Score:2)
Re: (Score:3, Interesting)
I didn't realize that any mod got you mod points.
Funny does nothing for your karma, though.
Re: (Score:3, Funny)
If I could only think up a cliched pun using the term forked ...
You're way ahead of me. I'm stuck at figuring out what "wrong side of the fork" means. Where's BadAnalogyGuy when you need him?
Re: (Score:2)
Re:Fork it (Score:5, Interesting)
I got a +5 funny post once.
When I was being serious.
Re:Fork it (Score:5, Informative)
Most
Re: (Score:2)
Re: (Score:2)
Yes, exactly. And PostgreSQL's capabilities and feature set is already closer to Oracle than MySQL's is or is likely to be in the future.
Re:Knowing Oracle... (Score:5, Insightful)
That's an interesting point of view. I saw things slightly differently, so say what you think of my take on it. I agree that Oracle might not actually care so very much that they got a free MySQL when they bought SUN. But in so far as they do pay attention things, I would think they'd steer people away from PostgreSQL toward MySQL rather than the other way around. My reasoning is that there is a clear and significant gap between MySQL and Oracle DB. MySQL is never going to draw many customers away from using Oracle DB, and mostly the other way around as well. But I see the gap between PostgreSQL and Oracle as being much smaller, both in the capabilities of the two databases and the easier time you have moving from one to the other (in either direction). I think that makes PostgreSQL more of a threat to the Oracle install base and thus something they would prefer to keep people away from. Using MySQL as a stalking horse makes more sense to me. Thoughts? Matches the real world or too conspiracy?
Re: (Score:2)
Postgres is getting much better speed wise. But Oracle's main selling point vs. DB2 traditionally is how fast it is. MySQL is also fast comparable to Oracle. This is less of an issue than it was a dozen years ago but I'm not sure how much that mindset still survives at Oracle.
Re: (Score:2)
What the fork? (Score:5, Funny)
Just tell me which one to use for the salad, so my ignorance doesn't trip me up like it did with that bidet that one time.
Not as serious... (Score:5, Interesting)
This really isn't as serious as is implied. MySQL is GPL. The forks are GPL. Therefore, if Oracle wishes, they can just cherrypick the best patches from all forks and integrate them back into their codebase, community involvement or not. I expect MySQL to remain the official MySQL, unless it completely stagnates, simply due to name recognition if nothing else.
Re:Not as serious... (Score:5, Interesting)
> The forks are GPL. Therefore, if Oracle wishes, they can just cherrypick the best patches from all forks
They can. But then they can't dual license it anymore as they don't own copyright for the whole source.
Re: (Score:3, Insightful)
Doesn't work so neatly as that. GPL is a copyright and you can infringe copyright without using literally identical material.
I'm not so sure the ethical argument works out either. Just because some GPL advocates say they want others to study and learn from it, doesn't mean that the people who actually contributed to it intended for it to be studied, learned from, and then essentially plagiarized without the license. I doubt even most advocates who speak those words are intending that you do this.
Re: (Score:2)
GPL 3 would stop the patent issue. Subject to testing in court. And subject to software patents being mostly US-specific. And subject to the code base moving forward enough under GPL3 to make backwards co
Re: (Score:3, Insightful)
Re: (Score:2)
Re: (Score:3, Insightful)
Personally, I believe the bought Sun just to get control of MySQL so they could kill it, since it was taking sales away from them.
A cogent and insightful theory, except that it's precisely like Mack buying out Segway because it was taking truck sales away from them.* Oracle doesn't have a credible product (or even a foot in the door) in any market where MySQL is already effective.
But this won't be totally effective
For the basic reason I stated above
we need to get all the MySQL users to rally behind one
One obvious question (Score:2)
How much of MySQL can be split off entirely and developed as a "common" frontend or a "common" backend? If there's a specific module or layer that everyone can more-or-less agree on in terms of code and API, then make that your "MySQL" and make the rest a dependency where the variations are interchangeable.
The benefit of this kind of approach is that you can have something that can be highly tuned and yet benefit from the large existing programmer base. But it only works if you can split the code meaningful
PostgreSQL: Why don't people use it that much? (Score:5, Interesting)
I have always wondered why people do not use PostgreSQL that much. It is better [tweakers.net] than MySQL in terms of stability and scalability.
You might wonder how I came to this conclusion. Well, I have used MySQL with MythTV and I have gotten sick and tired of corrupted databases/tables.
I have a read a reviews of PostgreSQL's stability and scalability beyond two cores and have no doubts it is better than MySQL on this front, though there have also been crowds here [slashdot.org] at Slashdot who think MySQL is better. My experience suggests otherwise.
Re:PostgreSQL: Why don't people use it that much? (Score:5, Informative)
Postgresql has a terrible marketing and image, mysql doesn't.
Re: (Score:3, Funny)
Re:PostgreSQL: Why don't people use it that much? (Score:5, Insightful)
Religious debate. Way back in the Olden Days, postgres was an unstable mess. Absolutely godawful. Corrupted databases, lost data, slow as moleasses, constant need to restore from backups. Completely worthless.
At the same time, MySQL was fast, stable, fast, worked well enough, slightly feature incomplete, and fast.
Those old stereotypes have stuck. MySQL nowadays? Actually pretty feature complete. PostgreSQL nowadays? Pretty stable and solid.
But nobody updates their perceptions, so the old ideas shine through.
Re: (Score:3, Informative)
Re: (Score:2)
Also indexing was REALLY slow and to backup you needed to take the db offline early on.
Re:PostgreSQL: Why don't people use it that much? (Score:5, Interesting)
Re: (Score:2)
Anecdote != fact
A very important thing to keep in mind. For instance for you 'databases and tables corrupted', for thousands of others though this never occurred.
Re: (Score:3, Insightful)
Well, yes, PostgreSQL is good. So is Ingres, now that there's a GPL version. Even fewer people use that. (Hell, I don't even know a distro that has Ingres packages.)
And, of course, those are only a few of the database engines out there. When you consider the sheer number of different types of database there are (hierarchical, relational, OLAP, object-oriented, indexed sequential flatfile, random access sequential, and so on), it's obvious that there's a lot of room for specialist engines.
Chances are, though
Re: (Score:3, Interesting)
Re: (Score:3, Informative)
Actually not really true. Postgres in the early days always was way more stable than MySQL, the speed however was less, because it always supported transactions, while MySQL started as an ISAM system with some sqlish language on top of that. But I never ever recall having the problem of corrupted data on postgres not even in version 6. The main issue was simply, that there was no decent windows port and postgres had to rely on Cygwin which made the db slow und unstable while it was not!
Add to that that earl
Re: (Score:2)
My, what extensive experience you having using MySQL!
Seriously though, the MySQL databases in MythTV do seem to get corrupted a lot. I use KnoppMyth, so the fix is usually just a simple "optimize_db", but it happens often enough that I've thought of automating the process.
Re: (Score:3, Insightful)
Because web hosting companies don't install it. They install MySQL, or MS SQL (if they're .net hosts.) That's it.
Re:PostgreSQL: Why don't people use it that much? (Score:5, Insightful)
There's no SERIAL datatype. It's simply a shortcut for creating a sequence, and is equivalent to saying "integer DEFAULT nextval('tablename_colname_seq') NOT NULL".
Also, I'm feeling really curious about this, because:
1. Why would the sequence get out of sync in the first place?
2. If it does, why doesn't using nextval and setval work for fixing it?
3. How will the app lose data? If somehow it generates the same number twice, any attempt to INSERT a row would simply fail.
So please explain how you get what you said to happen.
Re:PostgreSQL: Why don't people use it that much? (Score:4, Informative)
And then there's the increment functions. MySQL is a bit lacking, with only AUTO_INCREMENT and LAST_INSERT_ID. SQL Server has a similar setup to MySQL using IDENTITY(start, step) and SCOPE_IDENTITY(). But PostgreSQL uses that atrocious monstrosity of SERIAL data types and a damned Sequence object.
PostgreSQL seem to have copied that bit from Oracle, which also uses sequences. But sequences are actually superior, and here's why.
With sequences, you can emulate auto-increment behavior easily (you use the NEXTVAL or whatever the syntax in a specific implementation is, right in your INSERT). On the other hand, with sequences, you can generate the IDs first, and then generate a bunch of INSERTs with those IDs, with only two roundtrips: one for SELECT NEXTVAL - for as many records as you want - and another for multi-record INSERT. Why would you want a bunch of IDs? When you are batch-inserting records into a bunch of tables that reference each other (e.g. 10 records into table A, each of which has 10 new child rows in table B, each of which has 10 more new rows in table C). In MSSQL with auto-generated keys, you have to go about it that way:
1. INSERT records into A and retrieve the generated keys.
2. Use retrieved keys to generate INSERTs for new records in B; retrieve generated keys.
3. Use retrieved keys to generate INSERTs for new records in C.
For more tables in the hierarchy, you do more roundtrips. Now the same with sequences:
1. Request generation of keys for all records you'll be inserting, and retrieve generated keys.
2. Generate INSERTs for all new records using retrieved keys.
And it doesn't matter how deep the tree is, it's only 2 batches.
Of course, for MSSQL you can do away with generated keys completely, and use GUIDs, which can be generated on the client in the first place. But that makes indexes that much bigger, and queries that much slower...
nd heaven help you if the Sequence gets out of sync
This bit I don't understand at all. What do you mean by "sequence gets out of sync"? It's not really in sync with anything, it's just a simple counter that's guaranteed to safely produce unique incrementing values even for concurrent requests.
Re: (Score:3, Insightful)
Are you trolling ? You don't have to quote your identifiers if they don't contain spaces in postgres. And if you don't know what sequences do or why they're useful, then you probably don't use any normalization anyway and you're better off using BerkeleyDB. I suppose your sequence gets 'out of sync' after an import (which doesn't include setting the sequence), and that by 'losing data' you mean that your inserts start failing on your unique constraints. This is why you reset your sequence after an impor
MySql (Score:5, Interesting)
Personally it's just more of the same from MySql in general. MySql AB didn't do much of anything with it since 5.0 came out. They wasted a lot of time on a complete rebuild, on adding more features no one cared about. The thing about MyQql 5.0 is that it's really not a very good database. MyISAM sucks (but it is small and fast..) and InnoDB is bloaty. So I think that really MariaDB is going to be the future. Of the codebase. That is the nice thing about MySql is that really it's a wrapper around the Storage Engines. But the problem is the wrapper sucks. No kerberos/LDAP authenication?! What?
I could see Oracle taking one of their open databases and adding a Mysql compatibility layer so basically you can run stuff designed for Mysql on Oracle. This is really their bread and butter already, they move legacy stuff off old UNIX and IBM databases into their DB. Look at all the gateways 9i had [oracle.com]. MySql only implements a subset of what Oracle can do. And with no support for the more modern, more object orientated practices, along with trees, etc, I don't see MySql making it out of it's current place as a cheap small database for non-critical applications.
That's not to say you can't make it quite stable and fast but it's not that out of the box. And the fact that 5.1 shipped with a crashing bug really makes me doubt Sun's desire to continue the brand. Which brings me to the forks, which are really the only thing keeping a stable 5.1 version alive out there.
Postgres is really not a viable replacement because it's a database nerd's database. I like it, but the data analysts at work won't be able to deal with its quirks. It does do a lot, but not small and fast like MySql. It comes from a long line of great database researchers, all of whom are well known around the Valley. A lot of all the major players' databases in the valley are based on ideas from Ingres including Oracle.
Personally, I think SQLite3 (4) is going to be the database of choice for small web hosts very soon. Small, portable, fast enough. At that point MySql will no longer have a purpose unless they can move into the middle tier dominated by MS-SQL.
Re: (Score:2)
Surely you want a high-level authentication mechanism like SASL, and allow the mechanism to use underlying engines like Kerberos.
Re: (Score:2)
Sure, but Mysql doesn't have that. Here's a really old worklog [mysql.com] for pluggable authentication. There's a blog [mysql.com] on it also.
Re: (Score:3, Insightful)
SQLite is fast all right, but it doesn't scale at all.
PostgreSQL scales well, but is fairly slow on average.
The thing with MySQL is that you were supposed to have both.
Re:MySql (Score:5, Insightful)
SQLite is fast all right, but it doesn't scale at all.
MySQL does?
PostgreSQL scales well, but is fairly slow on average.
Honestly, that hasn't been true in years.
The thing with MySQL is that you were supposed to have both.
And yet somehow ended up with neither.
Re:MySql (Score:5, Informative)
In comparison? Yes. When you're doing simultaneous writes from multiple threads, SQLite's lack of fine-grained locking kills performance.
A couple of months back I did some benchmarking of MySQL and SQLite3 as possible storage backends for a website. The test load was a task consisting of two SELECTs, an UPDATE, and an INSERT. With only one or two simultaneous clients, SQLite3 was faster. With three clients, they were tied. At 50 clients, SQLite3 was taking over 100 times longer than MySQL.
Re: (Score:3, Informative)
Re: (Score:3, Informative)
PostgreSQL scales well, but is fairly slow on average.
I spent months making my queries ugly and hacky and optimised for mysql, and my website would still grind at about 500 concurrent users. Out of curiosity I switched to postgres, code unchanged other than the minimum to be compatible and it ran fine up to around 1000. Then I rewrote the queries in order to make them simple and elegant, and postgres ran them /even faster/ :P
Re:MySql (Score:5, Informative)
PostgreSQL scales well, but is fairly slow on average.
Really? Because any recent review of Postgres shows that it stomps the pants off MySQL in all cases except very simple queries against very small tables. (And really, who gives a !@#% about that scenario?)
Also....
1) It's data validation is excellent.
2) It's extremely stable. In YEARS of working with it, I've had ZERO integrity issues despite managing rather large data sets.
3) Particularly important: it maintains good performance as the query complexity soars. While it can take a bit of tuning, I've done 12 table joins with combined inner, outer, and subqueries and millions of records, with an average return time of around 0.2 seconds. The statement alone was two pages, printed form, on a single-core Athlon 64 with ATAPI drives and 1 GB of RAM.
4) It's FREE FREE FREE!
5) It includes excellent near-realtime replication. (functionally analogous to MySQL replication, which is nice when it works, but since it usually doesn't, well...)
1994 called. It wants its stale information back.
Re: (Score:3, Funny)
(And really, who gives a !@#% about that scenario?)
Why sqlite of course! And they are unbeatable in that niche.
Re: Ingres (Score:3, Informative)
Oracle and Ingres were serious competitors about 25 years ago. However, Oracle quickly adopted a significantly better design that put Ingres-like databases (Ingres, Informix, Illustra, the original Postgres, etc.) virtually out of business.
Not only that, the internal MVCC architecture of PostgreSQL is *much* closer to Oracle than any of the other Ingres derivatives - including Postgres itself. The original Ingres hit the wall in large part due to the lack of multiversion concurrency control and row level l
How healthy are forks? (Score:4, Interesting)
Are forks really a fact of life for healthy open source projects?
Most open source tools I use on a regular basis have never been (successfully) forked. More importantly, none of the other members in the LAMP stack have undergone a forking of the scale that MySQL is about go through. Sure, there are multiple 'L' distributions, but there isn't a healthy eco-system of production forks at the kernel level.
-Chris
Re:How healthy are forks? (Score:5, Interesting)
The two biggest success cases are XFree86->X.org, and GCC->egcs->GCC. Both of these were resounding successes.
XFree86 was widely criticized for moving too slow, not integrating enough new features, and having someone in charge that everyone hated. Finally, XFree86 instituted a license change that was incompatible with GPLed projects, so they forked it to X.org. All the best developers abandoned XFree86 and moved to X.org. Now, just about every Linux/BSD distro uses X.org, and no one pays attention to XFree86 any more. X.org has tons of updates, improvements, and additions which were being held back by the XFree86 leadership.
GCC has a similar story, though it's a few years older. gcc was getting decrepit, so a new renegade team started egcs. This incorporated new features, revamped the codebase, etc., and eventually everyone was using egcs instead of gcc. Finally, the gcc team just disbanded as they were no longer relevant, and egcs was renamed to gcc.
Of course, there's probably some cases of forks where the forked version went nowhere, and no one remembers it. But that doesn't matter, as it didn't hurt to have the fork (except the guy who started the fork, and ended up wasting his time on it, but that was the risk he took).
Forking generally works extremely well. The ability to fork keeps projects competitive and responsive, lest some pissed-off developers decide to fork it. It keeps maintainers from becoming dictators who only hinder the project's development, instead of fostering it, because it allows the developers to take control away from the maintainer when they've had too much.
It's too bad companies can't work more like this. There's plenty of companies where the company's owners or management are idiots and drive the company into the ground, and all that work wouldn't be lost if the employees could stage a coup, so to speak, and take over. Since software can be copied at zero cost, and OSS licenses allow forking, this can and does actually happen in the open-source software world.
Re:How healthy are forks? (Score:4, Insightful)
Sorry for replying to myself, but another fork in the making is OpenOffice.org->Go-OO. This one is interesting because it's more similar to the MySQL fork, in that the main project is controlled directly by a big corporation, rather than a nonprofit entity as GCC and XFree86 were. Apparently a lot of OO.o contributors weren't happy with the control Sun had over OO.o, and believed that Sun wasn't very accepting of patches contributed from outside Sun. So they forked it to "Go-OO", which is now included by default in several Linux distros.
Re:How healthy are forks? (Score:5, Informative)
And one more fork in the making that looks like it is going to have the same impact as XFree/X.org eventually, if not bigger: EGLIBC [eglibc.org]
Oracle doesn't care (Score:5, Insightful)
Oracle doesn't care about losing the trust of the MySQL community. They already have a database to sell; they're probably more interested in the vertical integration with OS, hardware, and programming language tools.
I wouldn't be surprised if they were happy to sell the MySQL business unit, or kill it completely.
And Oracle should care...why? (Score:2)
I don't know this for sure, but I can't imagine that Oracle bought Sun for the sake of acquiring MySQL. In fact, the only thing they really might be interested in it for is to destroy it.
Sure, they could nurture it along, make it the entry-level to REAL (i.e. Oracle) databases, but that's expensive, uncertain, and seldom profitable in the long run. Crushing it in-house, encouraging division and fractionation in the community, and letting it become another piece of roadkill is easier and more effective.
HOWEV
Database abstraction layers people (Score:4, Insightful)
The LAMP stack was always fundamentally flawed because the 'M' was not really an open source public project, where everything else was. We need to replace the M with a true open source project, and I hope the best project wins.
What everyone failed to do, that they should have done years ago, as a standard was build database abstraction layers. I know people will argue about performance bla, bla, bla but I don't buy that. We should have been doing it for years, exactly for this reason. Instead everyone was lazy, picked MYSQL because it was free/cheap/easy to learn.
Now, hopefully get off our lazy collective asses and build in database abstraction layers in to our web apps the way we should have from the start, or replace the 'M' with something really open source and public that does not belong to a company.
My only hope is that Oracle might do the right thing and cut it loose as a fully open source project to develop to its fully potential.
Irrelevant (Score:3, Insightful)
It's irrelevant. We moved everything to PostgreSQL and life is as uncomplicated and standards-compliant as life can get.