2016년 7월 24일 일요일

Mysql vs Postgresql


Mysql
Postgresql
advantage
Easy to work with:
MySQL can be installed very easily. Third-party tools, including visual ones (i.e. GUIs) make it extremely simple to get started with the database.

Feature rich:
MySQL supports a lot of the SQL functionality that is expected from a RDBMS -- either directly or indirectly.

Secure:
A lot of security features, some rather advanced, are built in MySQL.

Scalable and powerful:
MySQL can handle a lot of data and furthermore it can be used "at scale", if needed be.

Speedy:
Giving up some standards allows MySQL to work very efficiently and cut corners, thus providing speed gains.
An open-source SQL standard compliant RDBMS:
PostgreSQL is open-source and free, yet a very powerful relational database management system.

Strong community:
PostgreSQL is supported by a devoted and experienced community which can be accessed through knowledge-bases and Q&A sites 24/7 for free.

Strong third-party support:
Regardless of the extremely advanced features, PostgreSQL is adorned with many great and open-source third-party tools for designing, managing and using the management system.

Extensible:
It is possible to extend PostgreSQL programmatically with stored procedures, like an advanced RDBMS should be.

Objective:
PostgreSQL is not just a relational database management system but an objective one - with support for nesting, and more.
Disadvantage
Known limitations:
By design, MySQL does not intend to do everything and it comes with functional limitations that some state-of-the-art applications might require.

Reliability issues:
The way certain functionality gets handled with MySQL (e.g. references, transactions, auditing etc.) renders it a little-less reliable compared to some other RDBMSs.

Stagnated development:
Although MySQL is still technical an open-source product, there are complaints regarding the development process since its acquisition. However, it should be noted that there are some MySQL-based, fully-integrated databases that add value on top of the standard MySQL installations (e.g. MariaDB).
Performance:
For simple read-heavy operations, PostgreSQL can be an over-kill and might appear less performant than the counterparts, such as MySQL.

Popularity:
Given the nature of this tool, it lacks behind in terms of popularity, despite the very large amount of deployments - which might affect how easy it might be possible to get support.

Hosting:
Due to above mentioned factors, it is harder to come by hosts or service providers that offer managed PostgreSQL instances.
When To Use
Distributed operations:
When you need more than what SQLite can offer, including MySQL to your deployment stack, just like any stand-alone database server, brings a lot of operational freedom together with some advanced features.

High security:
MySQL's security features provide reliable protection for data-access (and use) in a simple way.

Web-sites and web-applications:
A great majority of web-sites (and web-applications) can simply work on MySQL despite the constraints. This flexible and somewhat scalable tool is easy to use and easy to manage -- which proves very helpful in the long run.

Custom solutions:
If you are working on a highly specific and extremely custom solution, MySQL can tag along easily and go by your rules thanks to its rich configuration settings and operation modes.
Data integrity:
When reliability and data integrity are an absolute necessity without excuses, PostgreSQL is the better choice.

Complex, custom procedures:
If you require your database to perform custom procedures, PostgreSQL, being extensible, is the better choice.

Integration:
In the future, if there is a chance of necessity arising for migrating the entire database system to a propriety (e.g. Oracle) solution, PostgreSQL will be the most compliant and easy to handle base for the switch.

Complex designs:
Compared to other open-source and free RDBMS implementations, for complex database designs, PostgreSQL offers the most in terms of functionality and possibilities without giving up on other valuable assets.
When Not To Use
SQL compliance:
Since MySQL does not [try to] implement the full SQL standard, this tool is not completely SQL compliant. If you might need integration with such RDBMSs, switching from MySQL will not be easy.

Concurrency:
Even though MySQL and some storage engines perform really well with read operations, concurrent read-writes can be problematic.

Lack of features:
Again, depending on the choice of the database-engine, MySQL can lack certain features, such as the full-text search.
Speed:
If all you require is fast read operations, PostgreSQL is not the tool to go for.

Simple set ups:
Unless you require absolute data integrity, ACID compliance or complex designs, PostgreSQL can be an over-kill for simple set-ups.

Replication:
Unless you are willing to spend the time, energy and resources, achieving replication with MySQL might be simpler for those who lack the database and system administration experience.

댓글 없음:

댓글 쓰기