MySQL 5.0 Candidate Released
Brian "Krow" Aker (Former Slashdot Coder now MySQL Employee) writes "I am pleased to announce the release candidate for MySQL 5.0. This version has been in development now for three years. We have worked to add update-able views, ansi stored procedures, and triggers. In addition we have added a number of fun features that we are experimenting with and resolved issues with bad data inserts (which personally annoyed the hell out of me when we rewrote Slashdot a couple of years back so I am happy to see this issue go away). We look forward to feedback on the candidate and will show some love for bug reports."
It's time for somebody to do a new, impartial study regarding the performance and feature benefits of this new release of MySQL, PostgreSQL, Firebird, SQLite, and perhaps other open-sourced relational databases.
Cyric Zndovzny at your service.
Every time any database is mentioned on Slashdot we get a load of comments about how MySQL is not a "real" database because it doesn't support {insert random feature here}.
Is it a real database yet?
The global economy is a great thing until you feel it locally.
I welcome stored procedures triggers very much, as long as they are fast enough to compete with the current "just program it yourself in you chosen language" style. Anyway: Another stored procedure language to learn.
My wife's sketchblog Blob[p]: Gastrono-me
How does the source code quality of this new release of MySQL compare to that of projects like PostgreSQL or Firebird, which have a far longer history and/or were formerly commercial developments?
Cyric Zndovzny at your service.
slashcode is loading slow - I thougt at least some people were bright enough to not link to their own site.
Does 5.0 have all the issues with data integrity sorted out? These are VERY important to me.
Working "ROLLBACK" even with millions of rows.
No silent data truncation.
No silent "BEGIN TRANSACTION" on unsupported table types.
No being able to drop a table if it is referenced in a foreign key.
etc etc.
Once these are fixed, I will look at how well it performs compared to real DBMSs.
Of course it's a real database. People have been successfully using it for years. Maybe at one point it didn't comply with the formal definition of a "relational database" due to missing features, but nevertheless was still a suitable product for many. And that alone is enough for it to be considered a "real" database.
Cyric Zndovzny at your service.
And Oracle 7 for the two years before -- in a not-so-large database -- I think there is not much to fear...
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
Something that is comparable and as easy to use as SQL Servers Enterprise Manager. The tools available on MySQL's site aren't very good. My main concern is easy importing and exporting to and from Microsoft Access. For example I can just copy records from access and easily paste them into SQL Server. Thanks for the help.
#####Free and Open Source Game Directory#####
Can we trust HP (linux everything campaign) while they are strategic SCO partner?
Can we trust Oracle (Linux is our main development platform) while they are strategic SC partner?
And many many more.
Maybe we can even find the website of a dictatorship using MySQL, oh.
My wife's sketchblog Blob[p]: Gastrono-me
Specifically:
* MySQL is free use for those who are 100% GPL. If your application is licensed under GPL or compatible OSI license approved by MySQL AB, you are free to ship any GPL software of MySQL AB with your application ('application' means any type of software application, system, tool or utility). You do not need a separate signed agreement with MySQL AB, because the GPL license is sufficient. We do, however, recommend you contact us as there usually are good opportunities for partnership and co-marketing.
* Under the Open Source License, you must release the complete source code for the application that is built on MySQL. You do not need to release the source code for components that are generally installed on the operating system on which your application runs, such as system header files or libraries.
* Free use for those who never copy, modify or distribute. As long as you never distribute the MySQL Software in any way, you are free to use it for powering your application, irrespective of whether your application is under GPL license or not.
* You are allowed to modify MySQL Software source code any way you like as long as the distributed derivative work is licensed under the GPL as well.
* You are allowed to copy MySQL binaries and source code, but when you do so, the copies will fall under the GPL license.
* Optional GPL License Exception for PHP. As a special exception, MySQL AB gives permission to distribute derivative works that are formed with GPL-licensed MySQL software and with software licensed under version 3.0 of the PHP license. You must obey the GNU General Public License in all respects for all of the code used other than code licensed under version 3.0 of the PHP license.
* FLOSS License Exception. We have created a license exception which enables Free/Libre and Open Source software ("FLOSS") to be able to include the GPL-licensed MySQL client libraries despite the fact that not all open source licenses are compatible with the GPL (this includes the PHP license version 3.0). Read more about the FLOSS License Exception.
Considering the new license and still lacking features, there is little reason to use MySQL. Postgres has "all that anda bag of potato chips."
Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
{sarcasm}hmmm, but for how much longer?{/sarcasm} I sure hope they don't try to pull some reverse licensing scheme... let it get all integrated, and then oh... btw, you owe us $799 per proc
...because Plutonians are teh suck
I certainly have to give them credit for one thing. The MySQL developers have been subjected to some very harsh criticism over the years, but few would accuse them of ignoring it.
It impresses me that they actually seem to be listening.
Do you like German cars?
Had you read my post, you would have seen that I limited it to open source relational databases. Oracle is not, as of now, an open source piece of software. And I believe their licensing agreement prohibits the disclosure of benchmarking data.
Cyric Zndovzny at your service.
The one area that has always annoyed me with postgresql and mysql was the lack of a good backup system. You have to script the entire database to do a backup. Oh vacuuming a database sucks as well!
My mother never saw the irony in calling me a son-of-a-bitch.
The point is that, even in recent versions, MySQL has some serious limitations that other OSS databases (e.g. PostgreSQL) do not suffer from, and no really significant corresponding advantages. MySQL was not designed from the ground up to be many things it is now trying to be--it was not designed to support transactions, it was not designed to support foreign keys, it was not designed to support stored procedures. It was initially conceived as a small, fast database for managing very large datasets in a warehousing sort of role. PostgreSQL, on the other hand, was always conceived of as being a heavier-duty database, and this shows in terms of feature completeness and SQL standard compliance.
Given that the performance differential (which was always overstated) has been overcome, why would you want to go with MySQL only to discover what the latest feature to be missed was? What's the advantage to MySQL?
"He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
since they signed that agreement with mysql to cooperate on development so that it works on SCO unix no doubt they will eventually claim certain propreitery features they supposedly invented were put into it. Ridiculous, but so is their linux lawsuit.
Before all the MySQL bashing starts can we please stop and have an intelligent conversation? The bottom line is that MySQL works great! For all those people who say .. "ya its a kids toy" well look at some of the sites and companies that are using mysql.. "Friendster" , "The Friendfinder network" , "Yahoo!" .. These sites each have millions of active members and are running just fine. Where else can you load up a 50+ database cluster and not have to shell out a fortune on licensing fees? All the developer tools are great!!
I am still waiting for a database system/program that will have a GUI as programmable as that of MS-Access. I have not looked at this latest release, but all the GUIs I have looked at up to now do not cut it! The talk of PHPMyAdmin, Navicat, MySQL Control Center and the like, reaffirms my conviction of un-seriousness on the matter of putting business and common logic into database applications. Putting this kind of logic to applications is much more easier in Access but that belongs to Windows - sadly.
http://www.eweek.com/article2/0,1895,1846635,00.as p
You may care to note that the MySQL backers weren't alone in forming links to SCO. Does this mean that we should boycott Postgresql as well? Or just continue to generate FUD about MySQL because you have a chip on your shoulder?
Oh come on. SCO licensed MYSQL to include it in their UNIX distribution. This isn't exactly some sort of secret plot.
They have done very little about these MySQL gotchas! They should have eliminated most of them first. You can still read them here: http://sql-info.de/mysql/gotchas.html.
If it's good enough for Slashdot.....
Losers whine about their best, Winners go home to fuck the prom queen
The license you describe doesn't say anything about server usage.
Clearly, the main-use for MySQL lies in server-client architecture. As long as you do not ship your self-created web-application, I see no reason you should be suspicious about MySQL.
No, their license is giving you more than the GPL. One of the GPL's biggest problems is it doesn't play friendly with many other OSS licences, so they are putting in a special exception to allow you to link to more things (such as things under the PHP licence). Of course, as you say, you can always have the GPL if you don't like their licence.
Combination - fun iPhone puzzling
is often the better database solution, I'll still be using MySQL. Why? Well a quick search on cwjobs shows 188 jobs requiring MySQL experience vs 7 for postgres!! Its a real shame but having used the best tool (C++ Builder) for my last job and then being unemployed for @2 years because people wanted either VC++ or Unix based C++ experience; I *WONT* be making the same mistake again!
Anyways, that said, Ive already played about with 5.011 and apart from the yukky syntax one has to use to support transactions it seems quite stable. Its might have taken a long time for them to finally make it a "real" database product but it seems good enough for small databases.
One of my next jobs is to test it with 10 million + records and see how it performs though so my assessment may be premature...
support for inserts will be added in version 7.0
The war with islam is a war on the beast
The war on terror is a war for peace
Access is an interesting app but has no business use whatsoever. I have been involved in multiple projects to rip apart poorly written applications in Access to move the data and the logic to where it belongs : a real multi-user relational database.
Writing a business application in Access is like writing it in Excel. The logic is poorly located and hard to share, the app is single-user, and the interface is crap.
What you want is a framework for quickly building apps on top of a real database. And thats another debate.
I know that there have been more than a few bashing threads, so I won't add any fuel to them. Props to the mySQL team for adding significant functionality to their software. Triggers and stored procedures are components that are important in making mySQL a production worthy enterprise level product. The big name companies who have been using mySQL likely were using it for basic heavy select statement stuff where inserting or updating recordsets wasn't part of the equation.
If most of the documented gotchas are addressed in the 5.0 RC then all the more I applaud their efforts. Once serious referential/data integrity is fully delivered I will plan to seriously consider mySQL for my next project. Until then it's PostgreSQL for FOSS and MSSQL Server for other stuff...
Database clustering and load balancing(Like the Oracle RAC), is it already available?. Although I'm glad to see the Stored Proc's, Triggers have been included. But good for the dev team :-)
Scott McNealy to Michael: "Suck my Sun!" Michael Dell to Scott : "Lick my Dell!"
The only so-called "database" that emphasizes it's GUI is Access. Every other vendor/product I'm aware of relies of separation of duties and doesn't try to roll user interfacing into what is rightly a back-end service.
Administration tools for commercial and OSS databases may be easy for small sites and novice DBA's that don't know their tools, but large applications rely on database scripts to handle configuration, not GUIs. The reason is simple: you can't put a mouse click into CVS/RCS/SCCS/???.
I do not fail; I succeed at finding out what does not work.
Well, SCO also ships PostgreSQL with their product, can we trust the PostgreSQL-folks?
Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
SCO OpenServer ships with:
-MySQL
-PostgreSQL
-Apache
-Tomcat
-Mozilla
-KDE
Should we not trust any of those projects anymore?
Slackware
Can find the bug here
First part of the description:
But you all knew where I was going. Since when is SCO a "leading provider" of anything other than laughs and FUD the last few years?
MySQL punched themselves with this SCO deal right before they caught up with other db's - a catchup process that was too slow anyway. Already made the move away from them - was an Oracle/MySQL guy for years, now I'm an Oracle/Postgres guy, with firefox for the little/quick things. Or sometimes just a bdb backend of my own creation. With all the competition out there, MySQL didn't need to introduce this highly annoying bug into their platform.
Funny, last time I submitted a technical bug report to MySQL it was closed by a support drone with a boilerplate answer. Reopening it just left it being ignored. Bugs? What bugs?
Most DBA's are adequate at best and most likely don't have much experience trying to squeeze every ounce of CPU out of a box. So I can understand why they do this... I personally don't take 'user' benchmarks very seriously because most times you have no idea how their environment is configured or if it is even configured properly.
"Thanks to the remote control I have the attention span of a gerbil."
Unlike MySQL, PostgreSQL has absolutely zero control over the distribution of their code, other than requiring the copyright notices.
AFAIK the clustering and load balancing 'solution' for MySQL means your entire database has to fit in memory. Not very practical...
We were going to deploy on MySQL, but after the press release, we went to PostGreSQL. Our cluster went live on Saturday.
We'll never use MySQL. Ever.
What did MySQL haters had to say now?
When it has transactions, foreign keys, stored procedures and so on... ?
it was not designed to support transactions, it was not designed to support foreign keys, it was not designed to support stored procedures.So next time, we can get Linux, look at what didn't support the version 1.0... and... you know what? YES! We can argue this against Linux FOREVER! No matter what power it has now! And get 5:Informative!!
TechSutra
Mod parent (-1 Misinformed)
I know it's not really apples-apples comparison. But can anyone share their experiences with Apache Derby and possibly compare it with MySQL?
I'm not a huge DB guy, so maybe I'm missing something, but based on the instructions on the mysql website it seems like for those of us still running 3.x and want to upgrade to 5.x we have to go to version 4.x first. Is there an easy way to upgrade directly?
CREATE TABLE t(t tinyint);
INSERT INTO t VALUES(300);
SELECT * FROM t;
Hmm... I'm no database person but if you're creating a table that only allows a value of up to 127 and go over that, I would expect it to give you 127.
What would a real database do?
From the announcement:
Strict Mode: MySQL 5.0 adds a mode that complies with standard SQL in a number of areas in which earlier versions did not; we now do strict data type checking and issue errors for all invalid dates, numbers and strings as expected
5.0 should be a decent database, but I still prefer PostgreSQL, as well as Oracle and MSSQL for commercial databases.
Hmm... I'm no database person but if you're creating a table that only allows a value of up to 127 and go over that, I would expect it to give you 127. What would a real database do?
Return an error and don't make the insert.
There isn't?
I just finished a project that accesses SQL Server from a Linux/Apache/mod_perl app using ODBC via the FreeTDS drivers. (Don't ask, client requirement.)
Granted, not all of the unixodbc drivers are free. But then, they aren't in MS land either, although you might not notice because you're paying for them via a bundle.
I forget what 8 was for.
From
Nothing to hide, no conspiracy here ;-)
I think the discussion here has hinged on "the nature of the partnership". Let me assure you that no money has gone towards SCO.
They have provided us with the means to build and support binaries on SCO OpenServer 6. So they're paying us for... developing our software, which is all GPL licensed (yes we do sell non-GPL licenses as well, for the same code).
Knowing this fact (SCO funding GPLed development), most people regard the partnership with a benign smile ;-)
The other issue I spotted was about "commercial binaries". Users with OpenServer 6 get a trial subscription to our MySQL Network subscription service. These are certified binaries, but still GPL licensed. Non-GPL (aka commercial) binaries are an optional (but free) extra under MySQL Network. That option exists mainly to assist companies where using GPL-licensed software runs into policy problems, etc. We do also sell non-GPL licenses separately from MySQL Network, to OEM/embedded customers.
I hope this clarifies the situation to your satisfaction. If you have any further questions, please feel free to ask me.
Regards,
Arjen.
--
Arjen Lentz, Community Relations Manager
MySQL AB, www.mysql.com
Shop Smart, Shop S-mart!
Enhancements that make it mostly a "real" RDBMS include the triggers, strict mode, updateable views, stored procedures, etc.
Still missing are XA/TPC, SQL/MED, SQL/PSM, Roles, SQL/CLI, user-defined types, any real OLAP functionality, and standards-compliance (ansi and strict modes) by default.
These features are mostly useful for large databases with many hundreds or thousands of users, and business intelligence requirements.
LedgerSMB: Open source Accounting/ERP
It was bad enough that Apple fans who used to tout the advantages of PowerPC will now fall in lock step with the merits of Intel technology, crazy that Republicans in America now defend deficits and Democrats now demand cuts in government spending. Even me, a lifelong Windows Troll, am now running Linux at home.
But this is the last straw!
MySQL turned a simple, lightweight and fast database into a gigantic, feature rich behemoth. Now all the MySQL fans that used to defend its lack of features on the basis of its performance and executable size will now defends its executable size on the basis of features.
The world has just gone insane.
This is my sig.
Well, Postgresql.org contains detailed instructions on how to install their database on OpenServer. So they are actively supporting SCO. Can we trust them?
Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
Thank you for explaining and debunking.
*thinking.. thinking.. thinking.. *
no
I strongly suspect the slashdot editors have a bet as to how many times they can post a MySQL story and have the same debate, with more or less the same bashing, arguments, and counter-arguments repeated all over again.
It's must be their secret revenge on the fraction of the readership screaming DUPE! every time they post a story resembling an earlier story. Now, they can read their latest MySQL story, point at almost any comment, and scream "DUPE!" they too!
You just posted what is quite possibly the single stupidest comment in the entire history of slashdot. Sorry, I don't think there is a trophy or anything, but you should still be very proud.
First of all, its not graceful degredation, its data corruption. The entire purpose of constraints is to give you an error when you try to insert invalid data. Changing it to be valid data and not even telling you is completely and totally the wrong thing to do. How about if your data doesn't pass a constraint then mysql does a drop table, is that still good for you? Its just as helpful and makes just as much sense.
Second, databases are supposed to have constraints, they store the data, they have all the rules of what is and is not valid data. Duplicating that in your code is absolutely brain dead, although its exactly what php/mysql developers have always had to do. This warps their minds and makes them think like you, that mysql is right, and everything else is wrong. Sorry, mysql is broken, every other database follows the SQL spec and returns an error when there is an error. Randomly changing data is not the correct response to an error condition, nor is there anything graceful about it.
Amen. The first time this bit me in the ass is when funky data started showing in the database for an old app. I went to debug it and found that somebody was inserting strings into an integer field. You'd think that any sane database would throw an error, but MySQL just said, "Hey, you probably meant 0, didn't ya buddy?" and silently put a zero into the table.
That being said, I have high hopes for MySQL. I'm really looking forward to playing with 5.0.
It was/is (sort of) bundled with apache. The only reason it's as popular as it is, whether people want to admit it or not. Has nothing to do with specs, or what it can do. It's easy to get working automatically, so many nix* n00bs, or people who just don't want to spend a fucking week configuring, use it. It gets the job done, plain and simple. It's been built upon from there.
... and SCO also announced the same partnership for the largest distributor of Postgresql.
oooh, big whoopi.
I'm can't wait to see the new MySQL now with its "fun features". I'm totally intrigued as to what a fun feature might be in a data base? Will it start replying to queries in style of the Swedish Chef? Bork ,Bork, Bork!
Still great work from the MySQL team.
Where would /. be without them? Probably /.ed!
This phrase is terrifying, and yet somehow not surprising.
alias wordup='cat /usr/share/dict/words | grep -i'
$ wordup ^reproduc.ble
reproducible
Does Postgres finally support replication? I had no idea!
"Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them." -- David Brent
I had a similar problem only this morning. I deleted all the rows from a table (by using DELETE FROM) and SELECT COUNT(*) went from sub-second to two minutes.
That's after going from 400,000 rows to zero.
VACUUM ANALYZE made no difference; however VACUUM FULL sorted it out. You should really have auto vacuum running, but for the dev I am doing I prefer to do it by hand.
From what you're saying, this could be the reason why it takes so long.
For what its worth, I've moved to Postgres because it's just so more solid. It's fantastic software. And I know what I'm talking about- I'm heavily involved in (big) mainframe DB2 at work.
http://blog.grcm.net/
a MySQL developer say "yeah, I don't know what we were thinking, that's a really fucked up thing to do" Yep, its a fucked up thing. This is why we implemented strict mode for 5.0. In 4.1 you get warnings, in 5.0 if you are using a transaction table it tosses an error. If this is an issue, upgrade to 5.0. Personally for me it is.
You can't grep a dead tree.
Can probably trust both but only MySQL found a way to have SCO fund the development of GPL'd software it had condemned... :)
You forgot Ingres and Informix.
I'm not sure what the status of informix is these days, but Ingres is free to use.
The background to this (without being verbose) is that ten years ago, the big 4 DBMSs were; Oracle, Ingres, Sybase and Informix - practically in that order. They all pretty much had the same feature set. For various reasons (which are too long and tedious to go into now) Informix has ended up with IBM, Ingres went to CA who abused it and then turned it loose last year, Sybase is entrenched in Financial applications and has managed to survive and Oracle is...well...Oracle.
Point is, Ingres is a top product, probably is still major league and it doesn't have expensive licencing associated with it. You should check it out.
well, i think ultimately mysql is on its way out unless they do something with their restrictive license... Recently i've been likening it to evil. Because of the license our software department unceremoniously ordered a switch to PostgreSQL. We are told to even port existing applications where possible. I was a supporter for many years but recently my opinion of PostgreSQL has trumped mySQL. as a final nail in the coffin for mySQL in my mind is the fact its hypersensitive to corruption in cases of a power outage. I've restored backups of databases no less then 3 times this year because the system was abruptly reset... this is side by side of other postgreSQL installations that came out fine. so if you're considering MySQL, you better figure in a good UPS in your Total Cost of Ownership calculations.
Perhaps. Really, though, the answer is "somewhere inbetween". That's why I said "consider using ..." ;-) . DB app GUIs make it too easy to overlook, or too hard to use, the facilities the database will have to help you, and this generally limits your design choices. In many cases, that's just fine, but in others it can be a serious issue. It's understandable - the smaller, simpler subset of features these apps limit themselves to using in the database host, the fewer quirks they have to deal with and the fewer things they need to emulate for storage engines that don't support them. I'm just not convinced it results in well-designed databases.
... all we need now is a "do it all in the application" nut and a "do it all in the database" nut and we can get a proper three-way flamefest going. Hmm. I'm waiting, and there's still no smell of sulphur - is it possible that being moderate and standing in the middle ground won't get me flamed to death? We'll see.
I also argue that the app developer's job extends well into the database, in that for many apps views and stored procedures are as much a part of their application as the "real" code. At the app/DB interface like the interface between their various app modules, they should be considering clean design and separation there too, rather than poking directly into some other module's structures. After all, the DBA needs to be a part of the app development if possible, and they're really maintaining a module just like everybody else.
In this context, "developer" is the user who is building a specific database implementation on top of a GUI database app like Access, rather than the developer who wrote that application.
Hmm
So these RDBMSs provide tools - triggers, stored procedures, a multitude of locking mechanisms, DRI (Declaritive Referential Integrity) and so on. With a well built database:
- You *can't* insert duplicate data
- You *never* modify data behind a users back (e.g. remove trailing spaces on varchar)
- You *never* break a foreign key, leaving dangling data
- You can perform all maintenance while the DB is live
- and so on...
The SQL standard is very clear and explicit about data handling - in general no surprises and never let in bad data. And all 'industrial strength' RDBMSs do a good job of following the standard... sadly not perfect but very good. MySQL is not one of them - see here for some of the ugliness inside MySQL exposed. For example: MySQL's use of NULL is just bizarre, as is its ability to accept invalid data and change it silently.'Industrial Strength' RDBMSs are about predicability and reliability. Speed is important, correctness is essential. MySQL aint there yet. Oracle, MSSQL, Postgres, Sybase, to name a few of my favourites, are.
Let the flames fly :-)
No, no, no...that's the whole idea of the library. If you use the functions from the standard library, you aren't required to comply with the GPL, only if you redistribute and/or modify the library. It's like saying that if you build your application on top of Linux that you are required to comply with the GPL. Only if you make modifications/distribute/copy the Linux kernel for your project would this requirement hold.
Can you point to the part of the MySQL license that says this? If you can't then I think I would prefer to take the word of /usr/share/doc/libmysqlclient12/copyright over yours. ;)
If MySQL were licensed under the GNU LGPL then you would be right... but it's not. If you link against libmysqlclient, then the derivitive work you have created must be licensed under the terms of the GPL.
Not at all. I refer you to Linus' statement at the top of the Linux COPYING file:
I see no such similar statement in MySQL's copyright file.
It gets 50 million page views a day and it's up to a 13+ million post count, with at least 1 million registered users. Is Slashdot not proof that MySQL has scalability?
NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work".
...it's just worded differently because it's a database and not an OS.
But that's what this means...
* Free use for those who never copy, modify or distribute. As long as you never distribute the MySQL Software in any way, you are free to use it for powering your application, irrespective of whether your application is under GPL license or not.
Again, that is not what the license says. The license says that the client libraries are under the GPL. Therefore, if you are distributing an application that uses the client libraries, your choices are: GPL it, use another MySQL-approved F/OSS license, or purchase a commercial license from MySQL.