I need your opinion on a subject.

I have been working as DBA for a short time and I have been asked by the Project Manager which database engine I recommend for a new critical project. The options given are MySQL and Postgres, and I should also tell which version I suggest.

How can I suggest a version without knowing implementation details or product usage? The project implementation has not started yet.

Should the DBA give specifications about which database version to use or that is a PM responsibility? I am not developing the product, I will just maintain it once it reaches production environment.

By the way, we already have a couple of small systems using MySQL and Postgres but they are small, non critical and we are not using high availability solutions of any king.

Any suggestions as to where my responsibility should go or what should I demand?

closed as primarily opinion-based by Paul White, RolandoMySQLDBA, Colin 't Hart, RLF, Mark Sinkinson Jul 17 '15 at 8:31

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    I answered this in Meta long ago : meta.dba.stackexchange.com/questions/614/… – RolandoMySQLDBA Jul 16 '15 at 17:40
  • If you don't have enough experience to make this suggestion, you should tell that to the person who asks and relax. If you do have enough experience but don't know the project requirements, also tell that to him/her. – mustaccio Jul 16 '15 at 17:47
  • Already told him i needed non functional requirements or usage requirements. I should suggest a version but without knowing if they need any particular feature of a new version. – ctutte Jul 16 '15 at 18:32
  • Rolando: Thanks for the post you showed me, i really agree in those things and are part of my work. The point here is if i should say we should use for example MySql 5.0 or 5.5 or any other without knowing if they will need any special feature. – ctutte Jul 16 '15 at 18:39
  • I personally can't see any reason to choose MySQL instead of Postgres. Postgres has more features, is more reliable and has much more development momentum than MySQL. – a_horse_with_no_name Jul 17 '15 at 8:54

NOT an answer - but too long for a comment.


Faced with (luckily for you) a choice between MySQL and PostgreSQL, I would unhesitatingly go with PostgreSQL.

CHECK constraints - silently ignored by MySQL. Incredibly reported as a bug 8 years ago - at least it's documented! :-( "The CHECK clause is parsed but ignored by all storage engines".

CTEs (Common Table Expressions) - not available in MySQL.

Window/Analytic functions - not available in MySQL.

(These last two links were brought to you by the principal author of High Performance MySQL: Optimization, Backups, and Replication).

You will spend a lot of time & money (not to mention lost sleep and hair :-) ) implementing code to do this stuff in MySQL whereas PostgreSQL does it for you.

MySQL "got lucky" in the internet boom pre-2000/2001 - it worked well with Windows and had a simple replication offering - both of which are now available with PostgreSQL.


From your question "say we should use for example MySql 5.0 or 5.5 " - always use the latest stable release if possible - it's the one that's least likely to have bugs - that goes for all systems - note "least likely" - there will always be bugs - the thing about Open Source systems is that they're up front and honest about them.

  • 1
    Actually, the oldest supported stable release is the one least likely to have undocumented bugs. In the world of Oracle few would take 12.1 over 11.2 or even 10.2 given the choice. – Roy Jul 17 '15 at 14:49

first question are what are the requirements for all you know it could be a BigData project

next Question should always be RPO/RTO

I would then question required throughput

  • estimated users
  • typical usage scenario
  • Peak usage scenario

also what the Data Access Layer the Developers are using direct sql calls or some form of ORM

then evaluate the answers against what skills do you have in house to support the application

this is certainly not the PM's desicion as they theroetically know about as much as Jon Snow about databases. The developers may have an idea but i would feel great a project lead had the foresight to ask our DBA their opinion

  • None of that is known – ctutte Jul 16 '15 at 18:31

Not the answer you're looking for? Browse other questions tagged or ask your own question.