IBM, MS Critique MySQL
magellan writes "InfoWorld has an article reporting how both IBM and Microsoft are dissing MySQL. While it is understandable from Microsoft, it is interesting that IBM, who often claims to be a defender of Open Source Software, would be so negative. Sun Microsystems and Yahoo are quoted as providing positive opinions on MySQL." On the credit site for MySQL, though, Bingo Foo writes "MySQL has finally answered its detractors who complained about its lack of transactions. A press release today reveals that InnoDB is now fully integrated with the stock MySQL product, allowing ACID-compliant transactions, rollback, and crash recovery. Let the religious wars begin!"
(P.S. Does MySQL have any support for checkpointing and hot backup, or do I have to take the whole database down during maintainance?)
Don't forget that IBM recently bought out Informix and now sells InformixSQL as well as DB2.
Does the name Pavlov ring a bell?
Good comment!
If I want flat file I use perl.
If I want SQL I use PostgreSQL
MySQL didn't get in my toolkit because of the licence. By the time they changed the licence I was using real SQL database software.
The only good thing MySQL has is marketing. They are a lot like MS SQL int that respect.
realkiwi
Minor correction: InnoDB *does* add foreign key constraints.
Open-source databases "don't support as many users, they don't support as much data, and you don't have as many connectivity options," said Jeff Jones, director of strategy for data management solutions at IBM. "They lack some key functionality and lack the scalability and performance, which keeps them out of the enterprise," Jones said.
No, it doesn't keep them out of enterprise. To manage some status data on some non-critical web server, out-of-the-box MySQL is perfectly adequate and much easier to use than fully-grown RDBMSs. Maybe it's a lot less scalable, but then it runs on the hardware you've already got.
But I can understand that it's quite frustrating for the big database vendors that some people do not care about online backup, transactions, stored procedures, views, replication etc. etc. and position even current stable MySQL versions against traditional RDBMSs. (Don't get me wrong, MySQL is fine if you don't need those features. You can already pick a subset of the features which are supported by MySQL in a single table type, and MySQL 5.0 will arrive one day and probably qualify as an RDBMS).
This is very prevelent in large corporations. Mid level managers get a certain appropriation for that years projects. If they don't use it all, they risk not getting the same amount in next years budget.
It would be nice if PostGres would support altering live tables (add/remove/modify columns), and stored procedures.
Have you checked out 7.3 for the column support? As for stored procedures, it has support for this also.
BWP
I work for a company that handles a LOT of database traffic (high volume web hosting and e-mail management) and we use MySQL for everything. We're talking terrabits of data here. MySQL is good enough for us because we don't need transactions and other high-end things.
That said, we are contemplating switching to Oracle because we are introducing credit card processing and we need the pure horsepower and transactional capabilities that it can do for us.
It's all about the right tool for the right job. If you don't need transactions or sub-selects then MySQL will do you just fine.
check out this article by tim perdue of sourceforge
Can't speak for the world but our Quad Xeon 700, 4gb ram, 60gb DB works really well. Averages 300 queries per second.
We've recently ran into a problem when we hit ~420 connections. Plenty of ram but MySQL reports errno 11 (Resource unavailable) and new connections fail. This is with the MySQL-max binary release that is rated to 1,500 connections. It's bizarre, and low-level. But since we use replication, we just shifted some connections to the slave and all is good.
MySQL will last us just long enough to finish our Postgres migration.
Well.. Some databases don't lock rows or tables (unless necessary). MVCC is a superior option (Oracle / Postgresql for implementation references).
Anyway, there are a number of things that subselects can accomplish that joins cannot do as easily. Not the best example below, as it could be done in other ways and the formatting isn't so great, but anyway:
SELECT col1, max, othercol
FROM table
JOIN (SELECT max(col3) as max
, col1
FROM table3
GROUP BY col1) as ttab
USING (col1)
WHERE 2 = (select count(*)
from table2
WHERE table.col1 = table2.col1);
Rod Taylor
look for docs/examples using the setof keyword. quick example:
bf2=# create table foo (i int, j varchar(10));
CREATE
bf2=# insert into foo values (1, 'one');
INSERT 28154811 1
bf2=# insert into foo values (2, 'two');
INSERT 28154814 1
bf2=# insert into foo values (3, 'three');
INSERT 28154816 1
bf2=# create function test_setof(int) returns setof foo as 'select * from foo where i $1' language sql;
CREATE
bf2=#
bf2=# select i(test_setof(3)), j(test_setof(3));
i | j
---+-----
1 | one
2 | two
(2 rows)
they actually have a few good points. Of course they bundled it with other open source databases which was not quite fair, as some, such as firebird (interbase derivative) outruns it and had native transactional support and advanced capabilities such as transaction shadowing. And yes I have ran all the open source ones side by side comparitively and actually have found that mysql has a LOT of missing features and is slower than firebird/interbase even with it in non-transaction mode with firebird in using full transactioning/shadowing support. Those of you that think an add on transactional engine such as in mysql (I know its bundled now, but its still an add on) is as good as a database built from the ground up with transactions in mind has not been working with anything of any real depth. And what of the lack of stored procedures, what of triggers, is it that you are just not ready to accept reality that you do not have to code everything client side. In fact I suspect you have tried little else than mysql if you think its worthly of more than a small scale usage, think again. Some day mysql will gain procedures. triggers and the lack I hear, but at the present, in the same tasks as firebird and the commercial databases, I find it wanting and somewhat crippled.
I dare say pulling a lot of records to client side to compare with other tables, even on the same machine and updating them will take quite a long time whereas it might take less than a second for 100000 to be updated with some criteria with a stored procedure.
Of couse you can send parameters to a procedure and you can return them from it, either as single value from an execute procedure or a select on the procedure as if it were a table creating extremely custom data sets that you just cannot get from a view. Which brings me to views, mysql dont even have views as far as I know, now that is pretty important.
Also about triggers, would it not be nice to be able to have your server create a series of sub table records for you when you insert the primary one, and also delete them when you delete the primary, or update them automatically, even pulling data from various other tables at high speed, all wrapped in the protection of a transaction off the main table? Well thats once tiny aspect of the use of triggers.
Well I hope you realize just how simple and wanting mysql is, do not think you have power until you have actually been exposed to it. Try firebird (http://firebird.sourceforge.net) if you want to see what you are missing, or a commercial counterpart before you decide mysql is good enough. I see mysql is supposed to add all these features in 5.0, but its just now starting in the 4.0 tree, I welcome it but in the meantime, look around.
Actually, I hate to post inflamatory comments, but
when I was working with MS SQL, we found it had
a documented bug (in the MSDN Database) where it
would deadlock on certain *read only selects*
even when no other app/process was querying the database (inserts or otherwise).
One of the things that jumped out at me at this article was that Jones's (IBM's) statement was very obviously a direct answer to very pointed, and very unpublished, question.
...then Jones response couldn't possibly be considered "bashing MySQL". He was just answering a question to the best of knowledge.
Jones did not wake up one morning and say to himself, "I'm going to call up InfoWorld and just rag on MySQL because I think its a threat to DB2!". No. InfoWorld called him, asked him a series of questions, kept what would make the best reading, and threw the rest away.
So, was Jones really being "negative" and "dissing" MySQL? We really don't know. If the questions he was answering were:
"What in your opinion is the main reason why MySQL is not beating DB2 and Oracle in the enterprise?"
and/or
"What would you consider MySQL's greatest flaws to be?"
Read the quote again to see my point:
Open-source databases "don't support as many users, they don't support as much data, and you don't have as many connectivity options," said Jeff Jones, director of strategy for data management solutions at IBM. "They lack some key functionality and lack the scalability and performance, which keeps them out of the enterprise," Jones said.
The whole article stinks of coaxing negative-sounding comments from people from "big bad companies", pasting them out of context, and calling it "Big Companies Once Again Stomp On Open Source!" Its also quite possible that he also said many wonderful things about MySQL, but that makes for boring reading and would be discarded.
It happens all the time, folx.
The
it is interesting that IBM, who often claims to be a defender of Open Source Software, would be so negative.
Perhaps the problem is that mysql, like, sucks?
autopr0n is like, down and stuff.