You have not given many parameters of how you intend to use the database. This makes a lot of difference. I will try to put the two main scenarios.
He also didn’t say which bank he or the people he works with know best. Perhaps because he doesn’t know any of them. In almost any scenario, using what you’re used to is the best way, it doesn’t matter much other reasons. In cases you don’t know any, it’s best to look for a solution that solves any scenario you come across. In this case Postgresql is the best solution. Pay attention, it is better than other solutions in few scenarios, in most cases any BD solution will meet the need.
Websites
If you’re going to use it for simple, normal websites, you’ll probably want something simple to install (although you’ll probably use a hosting where the bd is already installed), to maintain and to program the access. This is a case where Mysql usually does better than Postgresql. Postgresql is certainly more complex, no doubt about it.
But if you want something simple, then it’s better to think about the third way. Sqlite is simpler, more standardized and more reliable than Mysql. His only problem is that it doesn’t allow large-scale. Officially they say that 99% of websites can use Sqlite quietly. I say from my experience it is at least 99.9%. In most scenarios it will scale even better than Mysql. When entering a scenario where Mysql has problems, Mysql may have problems as well.
I’m not saying Mysql isn’t good. Of course it is. But the big reason people use it is because everyone uses it and not because it’s necessary, because it does something better.
Enterprise
For enterprise applications, Postgresql shines brighter than Mysql. There are numerous cases of Mysql usage in corporate environment with huge success, do not understand that Mysql is not good in this scenario. Sqlite already gets more restricted, it can be used only on very small networks and starting to lose one of its advantages compared to Mysql which is reliability.
Keep in mind that of all the best known comics he is the one who is not full acid. Even the Sqlite is.
Postgresql does not owe much to systems commonly used in enterprise applications such as Oracle and SQL Server. It even has some unique features. Mysql solves almost all situations well, it is possible to solve others with a little more effort or difficulties, but it leaves something to be desired in more complex scenarios.
Corrections
I decided to put an answer because there are several errors in the answers posted so far. Actually the answer from Peter Krauss is very good. I’ll start with her having a few points that might be more enlightened.
ROLLBACK
It has been said that Mysql does not have ROLLBACK. This is not an absolute truth. First we need to understand one of the features of Mysql. It allows multiple Storage Engines.
You can understand what Peter Krauss said, because almost everyone associates Mysql with the Storage engine called Myisam. He is the one who gave the performance advantage to Mysql for many years, it is used in the majority of scenarios, mainly for websites. Myisam doesn’t really have ROLLBACK. But Innodb, which is another Storage engine, does have ROLLBACK. But that doesn’t help so much. Because in any case, Mysql has difficulties in maintaining the so-called full ACID. That is, the database may get lost in some situations. Very specific, but it happens. The Mysql architecture, independent of the chosen Storage engine has difficulty keeping the data in order in some extreme cases.
Some people think that the only advantage of Mysql is when used with Myisam, which has some advantages, especially performance. Others think that Innodb is the only way forward with Mysql by giving more tools, being more scalable and more reliable in some scenarios. I am of the opinion that in scenarios where Myisam is a good solution, Sqlite is better. And in scenarios where Innodb is good, Postgresql is better.
Postgresql is more powerful but has the cost of being more complex. The great advantage of Mysql in relation to Postgresql is to be simpler, and with Innodb this is almost lost.
So his answer isn’t wrong, but it’s not complete.
Scalability
Scalability is possible in both cases, and in some ways it’s even easier in Mysql in most scenarios where it really needs a lot of scale, which is rare. But Postgresql has given priority to improve this situation and it is not far from being easier to scale massively in Postgresql. Note that I nay said Mysql is better at this point. Postgresql has many more ways and tools to scale or avoid complex solutions in medium cases, some already cited in the other answer. Almost everyone overestimates the need for BD scalability. The hardware is so powerful today that complex scalability schemes are rarely needed. Almost everything you read in blogs about scalability today is talking about websites that are hugely successful like the OS. It’s not for the common cases. These cases are so dominated you don’t have to talk so much. Postgresql is better for Scale up (running more on the same machine) and Mysql is easier, just easier, not better, in Scale out (using multiple machines to scale). Postgresql uses up to the last stalk of the machine to then you need more machines, Mysql, you need more machines quickly, but still in 2014 it is easier to add machines to Mysql. In 2015 this may be different.
Object-oriented SQL
Forget object-oriented SQL. This did not work anywhere. This was something that should have existed in Postgresql but was abandoned long ago. There are some tools there, but they are problematic, limited and do not receive updates. You don’t see serious applications using this feature and it’s something questionable in the myocardium of cases.
Standardization
Finally and already starting to question the other answers, Mysql is totally outside the ANSI standard and invents some crazy that causes shivers in various administrators and programmers. In fact these crazy things are the main vantgens of Mysql, they are the ones that facilitate its use. You have to choose what you want. But don’t say that Mysql is standardized. I don’t know how an answer that says this can get a lot of votes. Probably Mysql fan boys voted.
Postgresql you have to know how to use to work. Mysql works a lot of things even without knowing why. Until you go crazy to find out why it doesn’t work anymore. In Mysql there is more or less correct. Some people like this.
Installation
Today it is not clear that it is easier to install Mysql than Postgresql. Of course you have to know some things to do better, you have to know the installer of Enterprisedb. And if you think installation is a problem, I don’t know what you’re going to do to run a comic book that’s absurdly more complex. Rarely you install, this should not be taken into consideration. But if you have a scenario that makes many installations, you will become so experienced that no matter which is easier, you will master anything. And in these scenarios, Next, Next, Next, Finish is the last thing you should use.
Guarantees (safety, reliability)
If your concern is with security choose Postgesql, but if it is scalability go from Mysql.
Safety or reliability? You need to define well what you are talking about. Security, reliability or scalability, if you want the best, is Postgresql. I will repeat, Mysql is only simpler, therefore worse. Both are safe, each has its own specific advantage.
I will reaffirm here that even Innodb does not support full ACID. It is ACID in certain circumstances. That is, it is not ACID. I tried to find a website that shows problems that Innodb suffers, but I could not.
What hasn’t been said yet
Postgresql supports some variations of Storage. They are not enough to be completely separate, so different, but you can choose the best variant for each situation and this is well integrated with every database. Unlike Mysql the separate engine cannot do some things because Mysql hinders or prevents it. Postgresql tries to use the best way to store in the same engine.
It also has several forms of indexing. For optimization, choosing the correct indexing method is better than the main data Storage. This makes Postgresql beat more powerful systems in certain scenarios.
Want maximum performance and do not need reliability? Postgresql supports it too. It’s just not the default and is not recommended. The biggest problem with Postgresql is that people don’t know everything he’s capable of, it’s not lack of capacity. It opts for a more "Enterprise" or more professional path, leaving you optionally leave it more "loose" as Mysql is by default.
There are ways to make Mysql a little better, but then the simplicity of it is over. There is no free lunch.
In fact when you try to do some more complex things, Postgresql has more appropriate tools (better Joins, Ubqueries, Ctes, custom functions, more powerful data structures, extensibility, etc).
By the number of Mysql users, you should have more professionals with a capital P working with it, which shows that the technology is not important. But as a percentage, you will find more Professionals using Postgresql. It does not get along well with amateurs. Interestingly Sqlite should be more successful among amateurs, but perhaps these are so amateur that they can’t even find Sqlite. Or maybe the fact that Sqlite requires you to do things correctly, even simply, keeps amateurs who care about the result away, not the right result.
Note that the administrator’s ability to make the database work well is always more important than the chosen technology.
Additional information on comparisons
In one of the links I posted has an extensive comparison of the two, so I will not go into detail.
Beware of comparing old versions. Especially when only one of them is old.
Much of what I said here is a simplification. Keep this in mind. Nothing is database can be analyzed so simplistically. Some people can easily think it’s different.
I don’t think so, but if you think popularity is important: http://db-engines.com/en/ranking Reread what Peter Krauss wrote before giving much value to it. And note that this ranking has its own criteria. Sqlite is the most used database in the world. It must have multiple Sqlite databases on your computer and you don’t even know.
In the Wikipedia has a comparison of several systems that helps a lot to get an initial sense of the differences.
I particularly use Postgresql in most cases. It solves everything I need, never leaves me hanging. In cases where simplicity is more important, Sqlite solves my problem. It’s been a while since I found a case where I need simplicity and a power greater than what Sqlite gives but not so much that Mysql doesn’t have. So Mysql stayed for the cases where I am required to use it for non-technical reasons.
You’ll have to judge for yourself what your case is. I’ve given a good amount of information and I’ve indicated where you can find a head-to-head comparison of them.
Any mistakes here? It’s possible, but I did my best for the moment.
in the standardization part, you cited "today in the nested 5.1 is restricted in two functions.". The current version of Mysql is 5.6, also restricted to the same two functions. I took the liberty of editing your reply. Hugs
– gmsantos
Thank you! I kept your technical corrections and added grammar... With your comment I took to reread, and discover my editorial errors (should have many more, are worse than software errors, never end!)
– Peter Krauss
I would like to complement your answer regarding the part you say that "Mysql is no longer "100% public", its owner is Oracle". This is 100% correct. However, the community has made a Fork Mysql source code and created the Mariadb, which replaces Mysql very well and is under Gplv2 license.
– humungs
Would not be serialization instead of seriation? (Said the bore :))
– Clodoaldo Neto
@Clodoaldoneto The quick votes surprised me, Postgresql has its fans there and he was missing be defended... But to not be fanatical, and ensure accuracy, I opened the answer to Wiki: anyone can edit to fix. About the seriation, vide link, apparently this is the term (not to be confused with "XML serialization" and other structures).
– Peter Krauss
It was enough to talk about PL/SQL, which is partially supported by PG in pgPL/SQL. Other than that, I’m even thrilled with the answer!
– Vinícius Gobbo A. de Oliveira
@Viníciusgobboa.deOliveira, Yes (!) was missing, as well as remember that can still create high performance functions with C, and write functions reusing algorithms ready Javascript, Java, Perl, R, etc. ... But note that I opened the answer as WIKI, you can edit it yourself!
– Peter Krauss
Postgres is a better DB to store JSON than specialized Nosql!
– gustavohenke