MySQL A Threat to Bigwigs? 505
Disoculated writes "Is MySQL a threat to bigwigs? is the question asked in CNN's technology section. The article notes that MySQL is running perhaps 20% of the web databases but its revenue is merely 0.02%... yet the company is still making money and putting out an excellent product. Is this a sign that the database market is in for a drastic change? Of course, there's no mention of PostgreSQL or mSQL, but I guess that's typical."
Re:Version 4 Will Tell (Score:2, Informative)
Redundancy (Score:2, Informative)
I know Oracle can do this but I believe SQL server cannot.
Re:Ethical obligation? (Score:5, Informative)
Sorry.
The GPL, one of the licenses under which MySQL is distributed, states that if you re-distribute it, you are also required to share the changed source code.
My complaint was that the article was imprecise. If a company changes, but does not re-distribute MySQL, they are under no obligation at all, ethical or legal. If they re-distribute it then they are under a legal obligation to share their changes to anyone who uses it (not just MySQL AB).
"Ethically Obliged"? (Score:5, Informative)
The GPL does not merely give you an ethical obligation to share your modifications with anyone you distribute them to. It gives you a legal obligation. Until shown otherwise by a court, the GPL is legally binding. As such, stating that the (presumably only) obligation that someone modifying the code has in an ethical one furthers the outdated notion that all pieces of Open Source Software are amateur projects that are only held together by people who choose to donate their time for whatever higher reason. Not that there is anything wrong with volunteering your skills, but there are major businesses investing time and money in OSS.
From a business standpoint, OSS is legitimate. It would be nice if CNN reported it that way.
Note: I contacted CNN.com regarding this when they first posted the article. Predictably, I have not yet received a response.
Cheap, fast and easy. (Score:3, Informative)
Having to use a data-storage solution like Oracle is simply unfeasible for anyone but large companies. I've been using MySQL for 3 years to build web applications, and I've never had a crash or corrupted data. The only problems I ever ran into was when one of my systems had a table get to 2GB on the 2.2 kernel, but that wasn't MySQL's fault
With the inclusion of InnoDB, MySQL definitely becomes a threat. The main problems I've run into with MySQL is backing up/restoring without locking up the whole system (table-level locking). InnoDB of course removes this!
I see no reason to use Oracle over MySQL for anything but the largest system. Then again, why even that? Doesn't Slashdot run on InnoDB...?
Re:postgres, schmostgres... (Score:3, Informative)
That's hard? Give me a break. MySQL is so internally inconsistent that auto_increment is practically the only atom in the entire data definition syntax that uses the underscore! How about this bit of MySQL genius:
Which is the default: 42, or max(foo) + 1? The statement is internally inconsistent but MySQL allows it anyway. Nevermind the stupidity of requiring a unique index on the auto_increment column.
PostgreSQL has a number of operational problems -- vacuum, toast table indexes, and so forth -- but the SQL syntax is not one of those.
Re:Postgresql was way to hard to install... (Score:5, Informative)
Re:postgres, schmostgres... (Score:4, Informative)
Uhuh.......... CREATE TABLE foo (bar SERIAL PRIMARY KEY); (PostgreSQL)
CREATE TABLE foo (bar INT AUTO_INCREMENT PRIMARY KEY); (MySQL)
In both of the above tables, the bar column will behave pretty much the same way in each database. Yes, annoyingly difficult compared to MySQL because....... the syntax is different? Maybe if the first db you used was MySQL things seem "harder" because Postgres is a little different, but you'll see differences like that moving between any database.
In any case, even though I use Postgres, and prefer it over MySQL (which I have used extensively before), I am happy that opensource dbs are getting recognition out there.
Re:And the answer is .... (Score:4, Informative)
Phpbuilder.com [phpbuilder.com] did a series of benchmarks with mysql vs postgreSQL. Keep in mind this article is old and may be outdated. PostgreSQL was simple designed as a DBMS while mysql was designed as a fast sql filesystem for applications. They are made for different markets.
For simple operations mysql is faster but for a real RDBMS mysql is just catching up with PostreSQL. PostreSQL is generally more robust and speed picks up with higher loads over mysql. It supports true ansi 1992 sql, transaction support, Acid, replication, and other enhancements.
Re:If MySQL was just a bit more user-friendly... (Score:3, Informative)
OMG, you didn't really mean that, did you? Oh, that's so cute...
MySQL is barely ACID compliant, doesn't support triggers or stored procs or views (just for starters), and you say it has the power to replace MSSQL Server?!?!? For goodness sakes, MySQL just NOW has a shared SQL area (query cache). You gotta crawl before you walk, and you gotta walk before you can run with the big boys. MySQL is a very capable database in its own right, but it's still in it's infantcy.
With some of the best replication and datawarehousing functionality on the market and consistently a price/performance leader, I don't think MSSQL Server is going anywhere anytime soon.
Re:Version 4 Will Tell (Score:5, Informative)
The Newton OS did it, with an object database. Down the line, other PDA OSes did it as well- Palm OS and the Helio's VT-OS both provided a database as the only means of data persistence. The Palm OS and VT-OS DB systems are quite a bit more restricted than the Newton OS's OODB or the theoretical system-wide relational DB we're discussion.
Dynapad (my PDA OS/OE) take an approach similar to the Newton OS with an system-wide object database.
Re:Version 4 Will Tell (Score:5, Informative)
I used to be a big fan of MySQL, mostly because it was moderately capable and free. Now that I have tried Postgres though there is no way I would go back.
Yes, version 4 will be an improvement, BUT it is still missing many key features like views, triggers, full outer joins, update with subselect, that are already present in Postgres, and the fact is I've been using the features that MySQL is promising for the future for a year and a half now.
The following site does a very good comparison between the feature sets of MySQL, Oracle and Postgres.
http://det-dbalice.if.pw.edu.pl/det-dbalice/doc
Re:I wonder who mysql steals marketshare from? (Score:5, Informative)
Look here [webtechniques.com] and here [sitepoint.com]. Both of these websites mention what postgreSQL (and Oracle)offers that mysql is lacking as well as how to migrate to PostgreSQL. Keep in mind I am not a database administrator or do I consider myself a sql guru. I only use them to write web enabled apps as a hobby and not in a corporate environment.
However it was rumoured that postgreSQL lacked real backup tools to fix a corrupt database. I believe this might of been fixed but was an issue 3 years ago. This is the only downside I see. Both Mysql and Oracle have tools to fix such a problem. Maybe someone who is reading this who is more familiar with administering databases can comment on this.
Re:MySQL vs "bigwigs" (Score:2, Informative)
Replication is useful for keeping things going 24/7 and allowing intensive off-line reports etc.
Lets not confuse "advanced" or "bloated" features with "features I don't use".
Re:Version 4 Will Tell (Score:5, Informative)
Not to mention column and table constraints, stored procedures, extensible datatypes, user-defined operators, query rewrite rules, and schema and domain support.
Re:MySQL vs "bigwigs" (Score:5, Informative)
Mysql: Speed. Only.
Mysql is like a dragster, fast but no control.
Next time you want to start karmawhoring, at least pretend that you know what you are talking about.
Re:Version 4 Will Tell (Score:5, Informative)
What about the following data integrity and relational features (shared by both Oracle and PostgreSQL)?
- Multi-Version Concurrency
- stored procedures
- triggers (and PostgreSQL has declarative query RULEs, also)
- column and table constraints
- user/schema support
- domains
- extensible data types (so-called "complex" datatypes)
- user-defined operators
(sigh) Yes, I understand that not everyone needs these features (actually, they need them more than they realize, but they lack awareness), but to the people that use these features all the time, MySQL will not be a replacement anytime soon. In fact, the lowly old Microsoft Access has more relational data integrity features than MySQL.
It's not that it is bad at what it does, its just that most people don't realize what it does. As someone else in this Slashdot thread mentioned, the best place for MySQL is as a replacement for the older non-relational systems such as BerkeleyDB, DBASE, etc... I also se it as a convenient place to store static data output from larger systems (company stores its main data in Oracle, but outputs snapshots to MySQL for high-volume web serving, etc...).
Re:SAPDb (Score:1, Informative)
Re:which one? (Score:2, Informative)
It is an internal application for an insurance company. We run the server on HPUX, currently on version 7.3.1 of postgresql.
It isn't too hard to find people using postgres for serious work. Just hang out on the mailing lists for a week and you will be able to write a short book on them
Re:Version 4 Will Tell (Score:2, Informative)
DB with an integrated OS for some years, to minimize overhead on DB servers. Sort of the flip side of what you're talking about.
ls
Re:That depends... (Score:2, Informative)
Depending on which Sybase database they're running, it might not be unfounded. There are a couple of Sybase database servers out there. One is Adaptive Server Enterprise (ASE), which is based off the same codebase as Microsoft SQL Server. Another is Adaptive Server Anywhere (ASA, formerly SQL Anywhere, formerly Watcom SQL), which is a different codebase entirely. If the developers are talking about Watcom SQL, then I suspect they're running ASA, not ASE, in which case porting an application from ASA to SQL Server might be non-trivial (I've no idea, since I've never tried it).
There's also the fact that ASA is fairly cheap as far as database servers go, so there might not be much incentive to port these applications to MySQL.
(Disclosure: I'm a code monkey for Sybase.)
Re:I wonder who mysql steals marketshare from? (Score:5, Informative)
The first article was written in September 2001. The second article was written in October 2001. The person who replied to your post cited an article from 2000, almost three years ago. The PostgreSQL vs. MySQL argument would be a whole lot more interesting if the articles cited were actually relevant to newer versions of both databases. It would also be great if they were more than just, "Hey, look, I got my inefficient bulletin board working a little better under database XYZ."
The best database is the one that has the features you need, the performance you desire, at a price you're willing to pay.
Have a look at SAP DB before talking about those.. (Score:2, Informative)
SAP DB [sapdb.org] is free, open source and GPL. It also has all the best big-guy features. Not many people seem to know about it - it certainly has small mind-share. But it is the real stuff - miles ahead of MySQL.
Other open-source dbms (Score:5, Informative)
* Firebird [sourceforge.net] (ne: Borland Interbase)
* SAP-DB [sapdb.org] (ne: Adabas-D)
Both are good, high quality, commercial or formally commercial products released under an open source license. (interbase public license and GPL respectively)
Further, SAP-DB has excellent commerical support available from SAP, the company, at or better than the same level of responsiveness as, say, Oracle support.
Both are fantastic, enterprise level full ACID RDBMS's with all the great management features a heavy duty shop could want:
* online backups,
* transaction logs,
* restore to point in time
* subselects, views, rules/triggers, procedures, etc.
* great storage management
Check 'em out.
-- Pat
Re:Linux Registry? (Score:3, Informative)
Nonetheless, the kind of system-wide database is not the same thing as the MS registry, although the MS registry is a good idea, although (very?) poorly implemented. I'd much prefer it to having flat files that are in scores of different formats. There is no reason you could not edit this registry from the command line using a small utility just like you could edit flat files.
Re:Version 4 Will Tell (Score:3, Informative)
Only if you're doing everything manually. The times where I've gone with serialized data or an XML file, the code ended up less than the same solution done with an SQL connection. However, if you're doing this with a language or library that makes you reinvent this wheel every time, yes, you're worse off in terms of time spent coding. But even if you're stuck on a platform like such, there is no reason you cannot make a relatively small wrapper around these operations which redunancy and amount of code needed to do these things. All the benefits, none of the negative aspects.
Online Backups??? (Score:2, Informative)
This makes it unusable for a lot of enterprises.
Also, many people here do not seem to be aware that MySQL with InnoDB tables can do commits/rollbacks and in the last C'T [German Computer magazine] there was an article about MySQL and ACID.
What do you mean by online backups? (Score:2, Informative)
MySQL is appropriate, even for small stuff (Score:5, Informative)
Another way to put it - as the application grows in complexity, more functionality will be added to the data store as the programmers painfully rediscover all the challenges which real databases have already conquered. Of course MySQL doesn't cover all of those, like ACID, but it covers most. Look at the amount of effort that went into MySQL, Postgres and Oracle - it's huge.
Of course, you may be thinking of simpler applications than I am. If the data can legitimately be represented by one table, with no denormalization, then I agree a database may be overkill.
Hmm I would be nice but..... (Score:2, Informative)
It would be nice to see MySql get up and take the big boys on (Oracle, DB2) but I don't think it is quite ready for that.
Speaking from an Oracle point of view, as I haven't worked with DB2, it just has too much going for it atm. For example the ability to do
create table2 as
select *
from table1;
Hey Presto you have an exact copying of table one(constraints and all). If you add a few more characters (not commands just characters) you can move it to different tablespaces, schemas and even whole databases on completely different machines. With oracle 9i you can move whole data files, turn on and off tablespace enlarge and reduce tablespaces all on the fly while the db is running. You can't imagine how much time this and 100's of other nifty features saves,
I am not knocking MySql, I think for websites like slashdot where speed/uptime seem to be the main factor and not table complexity/integrity/constraints it does great (how many times has slashdot been slashdotted?). However, having used MySql I don't think it is up the job of replacing a database like oracle.
On the other hand a couple of years go Linux was not ready to take on solaris, AIX etal... and now look at it? I suppose you never know what will happen!
Re:Version 4 Will Tell (Score:5, Informative)
XML and flat files are good for data that does't change very often, and are only ever edited by a single user. (XML is also a good way to feed data fram a database into an application) Beyond that, they are pretty useless. They require far too much time on the developer's part when data within given contraints are needed, and coordinating updates between multiple processes can easily turn into a nightmare. Not to mention scalability. XML can get pretty large, and due to the non-indexed nature of the data, it can take a long time to read through it all looking for what you need. For many applications, using a database just makes sense.
The whole point of an app using a database is to offload the storage specifics onto another program. I applaude the developers of these "MySQL (ab)using programs" for making the decision to focus on their products features and stability, rather than on how they will store their records. Besides, once you install MySQL (or Postgres) once, then it is there for all of your DB dependant apps to use.
Not to mention the fact that MySQL 4 has standalone features that make your argument pretty moot. Any application can link in the MySQL core at build time, and will be able to have it's own MySQL databases separate from any active system wide MySQL instance. This gives developers an SQL storage system, without requiring the user to install a database on their own. It just comes bundled with the app, and when the app loads, the MySQL core is loaded right along with it.
I'll keep using databases for storage, and flat files for configuration data, thanks though!
MySQL AB comments (Score:5, Informative)
Great discussions on this thread! We are reading them carefully to learn what we can do better.
Let me just comment on the overall impact of having such articles appear on Fortune.com and CNN.com:
The article is indeed the result of PR work done by MySQL AB, but the value of it will benefit the entire free software / open source community. We need to get many more business articles out there, so let's be happy about this one, and let's produce more of them!
Although this very article mentions MySQL only, please have a look at other articles where we at MySQL AB consistently mention the other open source databases. Here are two such articles on prominent business-focused sites (one of which, incidentally, is powered by MySQL):
= A2 44_0_1_0_C
http://www.open-mag.com/01943583279.htm
http://www.alwayson-network.com/comments.php?id
Our ambition is not to be a threat to bigwigs per se, but to make superior database software available AND affordable to all. With your help we can do it.
Marten Mickos
CEO, MySQL AB
Re:"rollbacks" are an advanced feature? (Score:4, Informative)
FYI. 1.5M per day - we run MySQL. It has and continues to run like a champ every single day for the last 2+ years.
Of course, we've thrown some pretty high-end hardware at it to keep it running this long.
MySQL cannot scale reliably, period. Having two database systems act as a pool, under MySQL, is a crapshoot at best. Unless you like designing single points of failure into your web applications, stay away from MySQL.
Nail on the head here. InnoDB (the real seller for MySQL, since it gives them ACID compliance) *really* sucks under load. It starts chewing itself apart. Funny to watch, not funny to clean up - since you really can't.
We've been using replication in MySQL for backup purposes. (The replication has always been reliable for us) We can take the slave down for snapshots. But that is *all* we use it for.
MySQL will last us just long enough to finish our PostgreSQL migration.
Re:I think PostgreSQL is more of a threat (Score:3, Informative)
Can you describe the index problem in more detail? Please send a bug report to mysql@lists.mysql.com.
- What MySQL version did you use?
- Did CHECK TABLE report the table ok?
- What kind of SELECT queries did you execute and what did they report?
- Are you aware that in the AUTOCOMMIT=0 mode you have to COMMIT your read transaction to advance the consistent read timepoint? Some users do not know this and then wonder why committed data is not visible in another connection. InnoDB serializes read-only transactions at a precise timepoint so that all consistent reads are really consistent with respect to each other. The default transaction isolation level is therefore called REPEATABLE READ.
Best regards,
Heikki Tuuri
Innobase Oy
Re:Version 4 Will Tell (Score:1, Informative)
MySQL IS suitable for HEAVY use... (Score:1, Informative)
For those saying that MySQL isn't suitable for high traffic web sites should know this...
We provide web servervices to many of the large Real Estate Brokerages across the US. We are serving up about 60,000,000 page views monthly. The MySQL server powering those page views gets over 350,000,000 questions monthly. Our primary database is sitting at around 15,000,000 records. Anyone considering a new database should not believe what other say and test MySQL yourself. I can't stress this enough! We did this with MS SQL 7/2000 and MySQL. MySQL met all of our needs and crushed MS SQL in all of our testing.
Needless to say, MySQL is VERY powerful in capable hands!
Also, hot backups are possible. We backup about 24G worth of data in just a few seconds with no degraded services!