The Decline of MySQL?
geekgumbo.com
geekgumbo.com
Oracle's been doing good work at the boring task of making mysql work better on large multiprocessor machines. They've done a lot more to improve mysql than Sun ever did. (For that matter, Oracle's finally putting lambdas into Java too...)
Postgresql is catching up, but like the Python and Ruby programmers who whine about PHP, team Postgresql has never seriously asked the question of why MySQL has had more market traction than Postgresql. (HINT: it's not just hype, for many people, MySQL was the product they wanted)
And then there is the whole half-baked NoSQL peanut gallery.
You can point to some success stories but if you pick the average NoSQL product and have run-of-the-mill results you might experience spending 8 months building a product and then discovering the performance sucks with any number of servers. Or getting a phone call Saturday evening from the CTO like "Dude, where's my data?"
I wanted to like mongodb, it's got a beautiful design and even some funding -- on paper it's the closest thing to a company that could take on MySQL.
But then there was the terrible sprint where I rebuilt something I'd built in MySQL, and despite mongodb supposedly having the correct kind of index, queries in mongodb took 20 sec where MySQL took 0.03 sec.
The competition isn't quite ready yet.
And when you do and have lots of embedded entities it becomes very fast and with its fluid schema a lot easier to manage and maintain. For my use case I do a single query to fetch my self contained User object which would need 30+ queries if I was using a relational database. It's an order of magnitude faster.
So really NoSQL databases aren't a replacement for relational databases just another alternative.
If you need to fetch across users then you will need an index in order to have decent performance. But the point is that in MY use case this never, ever happens so I made that tradeoff. Much faster "fetch everything about this user by id" in exchange for much slower "fetch me all profiles for all users".
Postgres supports functional indexes, so indexing individual fields within a JSON document is already possible. If it's not easy now it will be easy soon.
Remember XML databases? They became extremely marginalized when relational systems started adding basic support.
This can't possibly be right. The 30+ SQL queries would have provided additional information that your 1 NoSQL query doesn't.
Just curious, could you explain what it is that people want from MySQL that they don't get from Postgres?
I (and another team member) recently moved a big project from MySQL to Postgres due to deadlocks, failure to respect constraints and similar issues, but I'm curious what I might be giving up.
So far the main thing I miss is is "UPDATE foo INNER JOIN bar ON foo.id=bar.foo_id SET foo.x={x}, bar.y={y}...".
Fact is that simplicity is more important than features for most people.
Configuration is a different story. When you are done with a Postgres config you have a more secure setup. They don't allow you to shoot yourself in the foot by default.
Honestly, installation as a differentiator between databases is a seriously weak argument. If you're going to troll pick something a little more technical like acid compliance or something else that nobody seems to care about.
And you ignored Windows, Mac as well as the huge number of LAMP based installers. Being able to quickly get the entire stack up and running very much helped the popularity of MySQL.
Meant no offense. Seemed trollish but when you factor in development setup then yes MySQL is slightly easier. I think heroku is doing a good job making Postgres a snap.
Outside of the startup community developers don't have such a great appetite for risk, especially with their data.
I'm one of those people - I just know My SQL better. It has nothing to do with ease of installation or building queries. It has to do with troubleshooting. I know how to tune MySQL and troubleshoot. I know how to install and use other systems but it introduces risk for me to put them into production without a very compelling reason.
I would happily use another system if there were a db admin to take responsibility for running the server. In fact my favorite db is Oracle, but I have no experience as DB admin on that platform.
I was involved with one project with PostgresSQL that was successful around 2005. I did 5 "shootouts" of DBMS alternatives that considered PostgresSQL and other products for various projects and despite having some attractive features, PostgresSQL always lost out. For instance, in mysql I was able to create indexes that could handle Freebase text fields without any "impeadance mismatch and it wasn't clear how to do it with pgsql.
The PHP API is incredibly direct and there's little development overhead.
Postgres on the other hand always felt kludgy for small projects. Just getting it up and running and creating databases took longer than with mysql. And phpMyAdmin is a tool most people are familiar with, for which I can't even think of the postgres analogue.
Pardon my butchering of the phrase but postgres is a hammer and mysql is a scalpel, and most projects call for a scalpel.
MySQL works but it was always a hack. PostgreSQL is superior and has been a superior solution for quite some time.
I'm sad to see MySQL go, but I find that Postgres works just as well.
Seriously, before claiming your beloved choice as "superior solution" would you mind as much as to learn something about competition you dismiss as inferior?
For one I cannot wait PG go become popular—maybe when more people start to use it and start to shoot themselves in the feet will they shut-up about superiority.
http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-transaction...
$ sudo aptitude install mysql-server
$ echo "CREATE DATABASE dbname;" | mysql
$ sudo aptitude install postgresql-9.1
$ createdb -U postgres dbname
mysql_query("SELECT * FROM foo...");
pg_query($db_handle, "SELECT * FROM foo...");
http://www.freewebmasterhelp.com/tutorials/phpmysql/4http://www.techrepublic.com/blog/howdoi/how-do-i-use-php-wit...
I haven't used phpMyAdmin, so I won't comment on that.
Nothing, but I'd really love the migration story to be much nicer. The only thing stopping me is a few hundred queries that will need to be rewritten to conform to the Postgres way. There's a few things that Postgres could offer to make the transition a bit easier:
- Improve mysqlcompat so that it's a really first class implementation
- Offer a configuration package that helps with a lot of annoying differences like booleans values not printing as 0/1
- Offer some MySQL style syntax sugar, like ON DUPLICATE KEY UPDATE, backticks for field names
- Offer a case insensitive collation for text fields or build something like citext into the core
- Supporting TINYINT and UNSIGNED numeric types would be useful
- I like the mysql date handling syntax...
I realise that many of these things have perfectly good workarounds available, but it would be much nicer if I didn't have to test as much stuff to confirm it still works.
What cases does it not cover?
MERGE support has been a want-to-have for a long time. Unfortunately Postgres is stuck between the complex but useful behavior of implementing MERGE (without destroying concurrency) and the simpler and still-useful MySQL extension "OR REPLACE".
Although it seems like some people have floated the idea of going with the simpler non-standard option without being shot down, it seems like the people interested in doing the work are most interested in implementing the complex and more featureful standardized option, and it's rather difficult, so there is no MERGE yet.
And how could you possibly be so sure about this?
I'll tell you two things that MySQL does right that postgresql doesn't: checksums and ON DUPLICATE KEY UPDATE.
With the cost structure described in the article, MySQL will start disappearing from university database courses. I used it when I taught databases. (It's bad enough that some of them use Access, but at least MySQL was supported for most.) This is double trouble, as MySQL Workbench was an introductory tool for many database features.
This is the reason (IMNSHO) Apple spent so much money in the 90s putting their software in schools, and why Microsoft has done the same this century at the university level. Software is a "gateway drug", and Oracle may be killing that.
MySQL, OpenOffice, Java, Glassfish are all still as free and open as they've always been.
I've known that to be the case as well. I was able to find this to back up the point that you make:
http://www.marketingapple.com/
"In the late 1980s, shortly after Steve launched the original Macintosh he faced a similar problem to the one we were facing ten years later. Very few developers were interested in building software for a platform that was much smaller than the standard at the time (in 1987 it was MS-DOS, in 1997 it was Windows). Steve’s answer was simple: encourage higher education institutions to build software for the platform and hook students on the Macintosh, which they would later bring to their jobs after graduation. The AUC worked exceedingly well then, and so I suggested to Steve that we rebuild a similar program, and he emphatically agreed."
Error establishing a database connection
Complements the post title perfectly :) Posted on November 6, 2010the most popular ? hmm i think the sqlite is more popular with more deploys at least on mobiles : android,ios ...
The way it was:
http://news.cnet.com/Sun-releases-Solaris-10-for-free/2100-1...
http://news.cnet.com/Sun-to-set-Solaris-free%2C-after-a-fash...
The way it is now:
"Production use of Oracle Solaris requires a support contract."
http://www.oracle.com/technetwork/server-storage/solaris10/d...
> "Oracle also striped out some of the capabilities from the MySQL Open Source version, like the NDB storage engine, for example, and now charges for this."
Can they do this? Dumb it down before 2015?
If they can, what would stop them from striping out more and bigger capabilities, effectively killing the Open Source version while maintaining dual licensing on paper?