MySQL A Threat to Bigwigs?
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."
We used to use mySQL, but moved to postgreSQL for performance reasons, and we're glad we have.
On the postgreSQL general mailing list, people rarely talk about mySQL anymore (let along mSQL). It's (mySQL) is generally regarded as a good alternative to the Berkeley DB stuff (i.e. non-relational), whereas postgreSQL these days gets lots of traffic from Oracle people wanting to go somewhere cheaper.
Oracle mustn't be happy, I'd think.
It seems oracle is going nowhere in terms of its core market. I am hoping its eating middle end and low end databases like ms-sql server. Access in the low end isn't going anywhere because of its gui and development tools.
I wonder about Sybase and Paradox which seem to be mid to high end of the market which Microsoft really hurt and now so its mysql.
I tried out mysql and its ok but postgreSQL is alot better for a RDBM. Its no wonder that RedHat picked postgreSQL for its database product. In Asia the situation is opposite of the west and all the technical books are for postgreSQL.
I just find it hard to believe its eating Oracle's or IBM's core markets. Mysql is a simple bicycle vs a high end car in comparison.
http://saveie6.com/
A lot of the viability of any product is based on who is selling it as part of an end to end solution. More and more developers are doing this with MySQL, but most of these developers are doing it for relatively low end applications. The "high class" consutlants and developers will be using DB2 and MS SQL forever, because a) they're told to do so by the people who can fire them b) they're used to it, and used to touting its glory c) they have a ton of tools for it.
Furthermore, there are some applications that just don't make any sense to switch. An example is government databases. I'm working right now with a state government database written on top of Sybase, and i don't think it's ever going to move off of Sybase unless the company tanks. There's actually three pages of (somewhat unfounded) explanations as to why it can't be ported to MS SQL. Mostly bullshit about WACOM SQL being incompatible with Transact (which begs the question, why not just use Transact in the first place when MS' and Sybase' version are about 80% similar). Can you imagine the developers, who have big enough egos to include three pages of MS SQL Server bashing in their docs, redoing their whole bloated app just so it can run on a free environment? Lord no! Not to mention the cost to taxpayers, who have already footed massive bonds to pay the usually high up front costs for software. Think they're going to pay a hundred k for some developers to rewrite everything in a free environment when they could just pay a few thousand for a Sybase license?
Do I think that truly open minded (some would say wise) development houses looking to cut costs on new systems are going to go MySQL? Absolutely. But there'll always be a place for the behemoth server app, not because it's better, but because it's PERCEIVED as better.
Hey freaks: now you're ju
Considering the way MySQL is (ab)used, flat text files, serialized data structures/objects or XML files would be very adequate and just as convenient for what 30-40% of what MySQL is used for. Mind you, they would be sufficient for what 30-40% of the big boys of enterprise databases are usually used for, but they're often applied when they're actually needed.
That isn't to say that I am against using databases, but the overhead of MySQL is often pretty absurd for very simple dynamic websites (hell, a lot of kinds of dynamic web sites) and desktop apps managing a relatively small amount of information. If a DB was integrated into the OS as the preferred method of storing data, with the overhead paid for across many apps in increased convenience, it'd be worth it. But why the hell should I need to install MySQL just to maintain a list of todos and contacts? Look on Freshmeat- there is a torrent of applications using MySQL for managing small amoutns of data, both web and desktop apps.
It's too bad most Linux developers aren't interested in doing something really forward-thinking. If there was a DB integrated into the OS, and apps encouraged to use it, with avenues of data management made easily available to the user, computing could be actually pushed ahead by Linux. But not today, and probably nor ever.
Oh yes, my point: most of these apps would do fine with a flat file or (if one must get fancy) an XML file to manage this data.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
That's a good question for IBM who did exactly that back in the early 80's with the AS/400. In fact, the entire architecture was designed around it.
I work at a heavy-duty Oracle shop. I would say that Oracle has gone way beyond being just a database vendor, in that they provide a complete--but proprietary--environment. Since I haven't needed to use many of their features in the past, I had never realized how complex their software is.
I can't believe MySQL doesn't even have subselects yet. I've been living on subselects and 'connect by' for years. I never did like PL/SQL all that much, but it does allow you to run complex programs over the network without creating high traffic. And SQLNet does make things a lot easier. The whole thing is kind of like a database flavor of Unix, with its own world of commands, scripting tools and permissions.
As for Oracle's 'fancy' products, like Express, Forms, the OID, Portal, and Workflow, they are serious attempts to extend the database principles into a generalized suite of enterprise-level business tools. They are a little too cutting-edge for my taste, but you won't find anything like this in a non-proprietary product.
I don't specifically mean the kernel. That would seem a bit unnecesary, unless it provided a pretty big boost in performance and was universally used by applications and the system alike to make it worthwhile.
The point would be for a unified model of data format, access and storage. No more file format worries. Empowering users to manage and manipulate their data. Easy sharing between apps on the same machine, over the network, across platforms.
The important change isn't in capability but in the way of doing things. Since I do not mean stuck in the kernel when I say OS integration, I simply mean that it would be a core part of the OS used by all applications. Instead of files as we know them. This could be provided by an existing user-space solution, but until there is some standardization the benefits wouldn't really materialize. E.g., it doesn't matter if MySQL is installed on this Linux box on my desk if none of the applications use it.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
mySQL is, unfortunately, a SQL interface to a bunch of files based on various index sequential access methods. It gets its speed by ignoring transactions, triggers, stored procedures and other things that, when your company is successful, will need in its database. mySQL's replication is also not guaranteed and when its spotty, it doesn't tell you.
The open source DB community is a powerful force with a lot of potential and a lot of success. That success is in markets where transactions are low and/or not critical to the customer.
mySQL and others need to ensure that they have these features:
- stored procedures (implementation outside of the A in ACID aren't complete - perl, java, python, etc)
- Referential integrity, foreign keys, transactions
- hot backups where you don't have to take the database down to get a backup with guaranteed integrity.
- reliable replication (argue away, only shareplex, NT SQL server & Sybase have it today)
- sub selects
- temp tables
- function based indicies
- automatic partitioning
- rollback (true rollback w/transactions)
- triggers
- block and row level locking. A select on
a 50 million row table shouldn't lock
the table.
- joins that do not lock tables due to full table scans
There are a lot of good reasons for using mySQL as a platform to begin the development of a project. For personal use, it's hard to beat! If you are a professional in a company that needs to support real clients with real data with real guarantees, spend your money on a real database.Where do you want to spend your R&D money? On your product or on the database that does most of the things you need, but not all of the things you need. Don't you want to spend your time building the product that pays your salary and makes your customers happy? Why spend time on the database, just buy something that works.
One more thing, a not unreasonable architecture for a database driven application is:
- UI layer
- Business rule/application layer
- Application Programming Interface
- Stored procedures (potentially hundreds)
- Database
Good luck.I am frankly surprised that MS SQL Server was ranked along oracle and DB2 as a 'high end' DB. Anyone who has had to work with it usually disagrees!
Personally I have seen SQL server most on small/medium size business environments. Any large 'enterprise' sized business deserves what they get if they are dumb enough to rely MS SQL server. Look what happened to Bank Of Americas ATMS when the last MS virus du jour made its rounds.
I think MySQL is the best bet to reduce Microsofts share of the DB market. Oracle is better, but small business isn't willing to fork out that kind of cash, especially in this economy. MySQL is especially perfect for the small business web site, and with Microsoft irrationally increasing subscribtion fees and forcing upgrades, a good percentage of their customers will be running into the open arms of MySQL/Postgres.
This discussion seems to be omitting an entire market segment of database engines. For instance, Advantage is a powerful database server that's priced at less than half the cost of M$ SQL Server, and Oracle. It's not a "free" product, like MySQL. In addition, Advantage isn't limited to SQL, which is nothing more than a limited reporting language, meaning, it's much more flexible to utilize Advantage than either of the products you seem to be comparing. And, No, I don't see MySQL as a threat at all to products such as Advantage.
In addition, MySQL isn't really all it's cracked up to be. Features such as page-level locking, (used by MySQL) and locking escalation (used by M$ SQL) will degrade performance in a multi-user application. So, while MySQL is great for a web-server, developing/deploying an application that uses MySQL can cause undesired performance degradation when multiple users are simultaneously accessing the data.
SQLite claims to be twice as fast as both MySQL and PostgreSQL, and is more SQL92-compliant and ACID-compliant than MySQL.
Does that mean everyone should drop MySQL and PostgreSQL for SQLite? No. It means you have to evaluate your situation and choose the best tool for the job.
Personally, I've have very good luck using PostgreSQL, and probably won't ever consider using MySQL until it is truly ACID-compliant.
A couple years ago I started a large hardware conversion project for a major telco. One of the requirements was a fairly large database to support real time call processing. I had already told the customer that I would only do the job if it was on a non-Microsft platform so I didn't need to worry about them wanting SQL Server. However, since they were a large telco I assumed that they wanted a well know commercial product so I proposed either Oracle or Informix - their preference. Their director of DP said something like "it's too bad we can't use MySQL" since they were using it for some smaller applications, unknown to me. My next comment was "do you want to use MySQL?". The answer was "yes, provided it could do the job". I said "I will make it do the job". Now it's been about two years and MySQL has almost faded into the background. It just runs, unlike my experiences with Oracle and Informix where you have to constantly administer them. That's my personal experience, your mileage may vary depending on your skill and attitude.
Peformance isn't what matters. No one cares about the MySQL overhead. SQL is a very *convenient* abstraction and way to access your data. It is easy to setup, and then to process queries. Even if people abuse it, it works. And for 90% of these applications working is good enough.
Firebird (was Borland Interbase)
http://firebirdsql.org
it's had all these abilities for years.
I've had 76GB single-file databases on my FreeBSD machine since last year.
Faster than Postgres on everything but deletes, but it cleans up after itself when postgres just marks pages for deletion during the next sweep.
Same speed as MySQL on insert/update/delete.
Slightly slower on selects, but that's understandable.
After all, it does have:
Stored Procedures and Triggers using the same PL.
Views, cursors, custom datatypes.
Multi-terabyte file handling capacity
Transactional Engine, with full Commit/Rollback.
Full referential integrity
I've had it doing ~300 transactions/sec on my Celery450, so it rocks along nicely.
I've used Mysql, PostgreSQL, SQL Server.
So far, Firebird outstrips them when you weigh all the features and performance.
Sure, you can power huge sites with MySQL, in the same way you can pull a 6-berth caravan with a Daewoo.
Firebird is a 4MB install. Why choose anything else?
BTW. It works a dream with PHP, Perl(DBI), C.
Probably more, but they're the ones I've used personally.
MySQL does have transaction support and is fully ACID-compliant--iff you use the InnoDB table type. This also allows you to use foreign key constraints. However, it's not as fast as MyISAM and doesn't support certain features (e.g. fulltext indexing).
In my (informal) tests MySQL/InnoDB is less than half the speed of MySQL/MyISAM but still about 50% faster than PostgreSQL for simple and small tasks. That said, PostgreSQL has more features than MySQL and I still prefer it for most tasks.
Gates' Law: Every 18 months, the speed of software halves.
I am a web developer and in the last few years I have written products that use SQL Server 6.5, 7, 2000 and Oracle 7.x and 8.x. MySQL has always been present whenever we discussed data back ends and was always dismissed as "not good enough." Usually because it did not cost a gazillion.
During the last 18 months or so I have run my personal sites with a MySQL back end. I have never had an outage or loss of data that can be traced back to the MySQL servers. I ran it first on Windows 2000, later on freeBSD4.5 and now on a freeBSD4.6 jail. It still works perfectly.
Back when we were still arguing (two jobs ago) about using MySQL, the DBAs usually claimed that you could not trust MySQL because of the lack of stored procedures and the fact that it could not pass an ACID test. Since then I never bothered learning the DB system itself beyond the minimum needed for SELECT/INSERT/UPDATE/DELETE operations, I did not try to verify this on my own. Years later and I am convinced that these DBAs probably read that in a magazine, and that none of them had even seen MySQL running.
After the dot-bomb nightmare nobody in his right mind should be proposing to their managers to spend obscene amounts of money in SQL Server and Oracle licenses just to do simple SELECT/INSERT/UPDATE/DELETE operations. Sure, stored procedures rock but it does not make any sense to spend that much money just for the 1% of your functionality that will be run by stored procedures!
Most of the people I know that use SQL Server don't even know how to write one, and in the last 5 years I have only written two web applications that have more than 1% of their sql operations as stored procedures. And for Oracle it is even worse!
Pedro
----
The Insomniac Coder
Version 4 is currently in "gamma" release, in other words very stable beta. I use it on my website with no problems (although it does not have the load that a large website would need to stand up to).
I run a Debian/Kernel/Knoppix Mirror: (http|ftp|rsync)://debian.ams.sunysb.edu/
apt-get @ > 5MBps == teh win!