MySQL vs Oracle vs PostgreSQL

Need advice about which tool to choose?Ask the StackShare community!

MySQL

75.5K
59.8K
+ 1
3.7K
Oracle

1.4K
1.2K
+ 1
105
PostgreSQL

56.9K
44.8K
+ 1
3.5K
Advice on MySQL, Oracle, and PostgreSQL
Needs advice
on
PostgreSQL
MySQL
and
MongoDB

I'm planning to build a freelance marketplace website, using tools like Next.js, Firebase Authentication, Node.js, but I need to know which type of database is suitable with performance and powerful features. I'm trying to figure out what the best stack is for this project. If anyone has advice please, I’d love to hear more details. Thanks.

See more
Replies (3)
malekmfs
at Meam Software Engineering Group · | 6 upvotes · 24.2K views
Recommends
PostgreSQL

Postgres and MySQL are very similar, but Mongo has differences in terms of storage type and the CAP theorem. For your requirement, I prefer Postgres (or MySQL) over MongoDB. Mongo gives you no schema which is not always good. on the other hand, it is more common in NodeJS community, so you may find more articles about Node-Mongo stuff. I suggest to stay with RDBMS if possible.

See more
Ruslan Rayanov
Recommends
MySQL

We have a ready-made engine for the online exchange and marketplace. To customize it, you only need to know sql. Connecting any database is not a problem. https://falconspace.site/list/solutions

See more
Recommends
PostgreSQL
MySQL

This is a little about experience. Postgresql is fine. You can use either the related table structure or the json table structure.

See more
View all (3)
Dennis Kraaijeveld
Needs advice
on
PostgreSQL
MongoDB
and
ExpressJS

For learning purposes, I am trying to design a dashboard that displays the total revenue from all connected webshops/marketplaces, displaying incoming orders, total orders, etc.

So I will need to get the data (using Node backend) from the Shopify and marketplace APIs, storing this in the database, and get the data from the back end.

My question is:

What kind of database should I use? Is MongoDB fine for storing this kind of data? Or should I go with a SQL database?

See more
Replies (3)
Arash JalaliGhalibaf
Software Engineer at Cafe Bazaar · | 10 upvotes · 36K views
Recommends
PostgreSQL

Postgres is a solid database with a promising background. In the relational side of database design, I see Postgres as an absolute; Now the arguments and conflicts come in when talking about NoSQL data types. The truth is jsonb in Postgres is efficient and gives a good performance and storage. In a comparison with MongoDB with the same resources (such as RAM and CPU) with better tools and community, I think you should go for Postgres and use jsonb for some of the data. All in all, don't use a NoSQL database just cause you have the data type matching this tech, have both SQL and NoSQL at the same time.

See more
Recommends
MongoDB

I have found MongoDB easier to work with. Postgres and SQL in general, in my experience, is harder to work with. While Postgres does provide data consistency, MongoDB provides flexibility. I've found the MongoDB ecosystem to be really great with a good community. I've worked with MongoDB in production and it's been great. I really like the aggregation system and using query operators such as $in, $pull, $push.

While my opinion may be unpopular, I have found MongoDB really great for relational data, using aggregations from a code perspective. In general, data types are also more flexible with MongoDB.

See more
Luciano Bustos
Senior Software Developer · | 1 upvotes · 26.6K views
Recommends
PostgreSQL

I will use PostgreSQL because you have more powerfull feature for data agregation and views (the raw data from shopify and others could be stored as is) and then use views to produce diff. kind of reports unless you wanna create those aggregations/views in nodejs code. HTH

See more
View all (3)
Krunal Shah
Needs advice
on
PostgreSQL
and
MongoDB

I want to store the data retrieved from multiple APIs and perform some analytics on it. The data stored in DB will never/hardly change. First, I thought it would be better to retrieve the data and create table columns for them, but some data might have different columns than others. So I thought about storing the JSON response from API directly to the table and use it. So which database will be the better choice, PostgreSQL or MongoDB.

See more
Replies (6)
Nikhil Gurnani
Sr. Backend Engineer at Grappus · | 8 upvotes · 33.7K views
Recommends
MongoDB

Hey Krunal, your requirement sounds pretty clear and specific to what you want to do with that data. My recommendation to you, would be to use MongoDB. Since schema-less IO is faster in MongoDB, your general speed of reading / writing from and to the database would be quick. Additionally, the aggregate framework is very powerful with large data so that is also something that you can use in computing your analytics.

See more
Maxim Ryakhovskiy
Recommends
Mongoose
MongoDB

I suggest you to go with MongoDB, because it is schema-less, i.e., it permits you to easily manipulate the schema of a table. If you want to add a column, it can be done without much effort. Moreover, MongoDB can deal with more types of data, since the latest is stored as key-value pair. I do not what kind of analysis you are going to do, but NoSQL is not the best choice if you are going to use complex queries. In addition, if you are working with huge amount of data and you are interested in optimising the performance, I suggest you PostgreSQL. Since you are speaking about API and JSON, I guess that you may using Node JS for fetching API. I suggest you to try Mongoose, which facilitate the use of MongoDB with Node JS.

See more
Tarun Batra
Back End Developer at instabox · | 3 upvotes · 30.3K views

Looks like the use case is to store JSON data. mongoDB and Postgres differ in so many aspects like scaling and consistency. Postgres has excellent JSON support now with the power of SQL. MongoDB is good in handling schema less data. However in this case it seems these differences don’t matter that much. I’d recommend you go with what you are most comfortable with.

See more
Bob Bass
President & Full Stack Enginee at Narro, LLC · | 3 upvotes · 30.1K views
Recommends
PostgreSQL
MySQL

This is largely a matter of opinion. I see that someone else responded and recommended MongoDB but since you are doing data analytics, I highly recommend you go with SQL. You're going to have a really hard time normalizing the data when you can't manipulate relationships and bulk edit with a nice update query.

I'm much more experienced with MySQL than any other database and I am having a hard time getting on board with noSQL entirely because it's really hard to query complex data with relationships using noSQL. I'm using Firestore with one of my apps and MongoDB with another app but they both use MySQL for the heavy lifting and then a document database for things like permissions, caching, etc.

It sounds like the type of problem you need to reverse engineer. I'm sure you can imagine what the data sets would look like if you use MongoDB or Postgres. I suspect that putting in a little bit more work up front will pay high dividends and productivity once the data is normalized.

Again - it's largely a matter of preference but I prefer SQL almost every time.

See more
Luiz H. Rapatão
Senior Software Engineer at rapatao.com · | 3 upvotes · 30.2K views
Recommends
MongoDB

I don't have an unquestionable opinion regarding your use case. I only trend to pick the MongoDB since it is schemaless avoiding null columns that you not always know when it is used (it depends on the source of the data). The only drawback that I could consider is the query's complexity in MongoDB, sometimes it is a bit tricky, when compared to the traditional SQL queries.

See more
Recommends
MongoDB

MongoDB should be better for unstructured/less structured data.

See more
View all (6)
Decisions about MySQL, Oracle, and PostgreSQL
Usman Sadiq
Student at University of Toronto · | 7 upvotes · 16.7K views
Migrated
from
PostgreSQL
to
MongoDB

MongoDB's document-oriented paradigm is nicely suited to the results of our ML model. We felt that this compatibility offered some time savings on figuring out and implementing an extensive data formatting and processing system. MongoDB's flexible schemas schemas (due to it being non-relational) were also attractive as a source of additional agility for our development process. The MongoDB ecosystem also has great GUI tools to simplify testing.

See more

Backend:

  • Considering that our main app functionality involves data processing, we chose Python as the programming language because it offers many powerful math libraries for data-related tasks. We will use Flask for the server due to its good integration with Python. We will use a relational database because it has good performance and we are mostly dealing with CSV files that have a fixed structure. We originally chose SQLite, but after realizing the limitations of file-based databases, we decided to switch to PostgreSQL, which has better compatibility with our hosting service, Heroku.
See more
Anthony Simon
Lead Engineer at Stylight · | 20 upvotes · 44.9K views

I try to follow an 80/20 distribution when it comes to my choice of tools. This means my stack consists of about 80% software I already know well, but I do allow myself 20% of the stack to explore tech I have less experience with.

The exact ratio is not what’s important here, it’s more the fact that you should lean towards using proven technologies.

I wrote more about this on my blog post on Choosing Boring Technology: https://panelbear.com/blog/boring-tech/

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of MySQL
Pros of Oracle
Pros of PostgreSQL
  • 790
    Sql
  • 673
    Free
  • 557
    Easy
  • 527
    Widely used
  • 485
    Open source
  • 180
    High availability
  • 158
    Cross-platform support
  • 103
    Great community
  • 78
    Secure
  • 75
    Full-text indexing and searching
  • 25
    Fast, open, available
  • 14
    SSL support
  • 13
    Reliable
  • 13
    Robust
  • 8
    Enterprise Version
  • 7
    Easy to set up on all platforms
  • 2
    NoSQL access to JSON data type
  • 1
    Replica Support
  • 1
    Easy, light, scalable
  • 1
    Relational database
  • 1
    Sequel Pro (best SQL GUI)
  • 42
    Reliable
  • 29
    Enterprise
  • 15
    High Availability
  • 5
    Hard to maintain
  • 4
    Maintainable
  • 4
    Expensive
  • 3
    Hard to use
  • 3
    High complexity
  • 753
    Relational database
  • 506
    High availability
  • 436
    Enterprise class database
  • 379
    Sql
  • 298
    Sql + nosql
  • 171
    Great community
  • 145
    Easy to setup
  • 129
    Heroku
  • 128
    Secure by default
  • 111
    Postgis
  • 48
    Supports Key-Value
  • 46
    Great JSON support
  • 32
    Cross platform
  • 29
    Extensible
  • 26
    Replication
  • 24
    Triggers
  • 22
    Rollback
  • 21
    Multiversion concurrency control
  • 20
    Open source
  • 17
    Heroku Add-on
  • 14
    Stable, Simple and Good Performance
  • 13
    Powerful
  • 12
    Lets be serious, what other SQL DB would you go for?
  • 9
    Good documentation
  • 7
    Intelligent optimizer
  • 7
    Scalable
  • 6
    Transactional DDL
  • 6
    Modern
  • 6
    Reliable
  • 5
    Free
  • 5
    One stop solution for all things sql no matter the os
  • 4
    Relational database with MVCC
  • 3
    Faster Development
  • 3
    Full-Text Search
  • 3
    Developer friendly
  • 2
    Excellent source code
  • 2
    search
  • 2
    Great DB for Transactional system or Application
  • 1
    Full-text
  • 1
    Free version
  • 1
    Text
  • 1
    Open-source

Sign up to add or upvote prosMake informed product decisions

Cons of MySQL
Cons of Oracle
Cons of PostgreSQL
  • 14
    Owned by a company with their own agenda
  • 1
    Can't roll back schema changes
  • 13
    Expensive
  • 9
    Table/index bloatings

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is MySQL?

The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.

What is Oracle?

Oracle Database is an RDBMS. An RDBMS that implements object-oriented features such as user-defined types, inheritance, and polymorphism is called an object-relational database management system (ORDBMS). Oracle Database has extended the relational model to an object-relational model, making it possible to store complex business models in a relational database.

What is PostgreSQL?

PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.

Need advice about which tool to choose?Ask the StackShare community!

What companies use MySQL?
What companies use Oracle?
What companies use PostgreSQL?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with MySQL?
What tools integrate with Oracle?
What tools integrate with PostgreSQL?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Dec 8 2020 at 5:50PM

DigitalOcean

+11
2
1701
+6
2
1469
Nov 20 2019 at 3:38AM

OneSignal

+8
7
3733
Jul 9 2019 at 7:22PM

Blue Medora

+8
11
1715
What are some alternatives to MySQL, Oracle, and PostgreSQL?
MariaDB
Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry. MariaDB is designed as a drop-in replacement of MySQL(R) with more features, new storage engines, fewer bugs, and better performance.
MongoDB
MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
Microsoft SQL Server
Microsoft® SQL Server is a database management and analysis system for e-commerce, line-of-business, and data warehousing solutions.
SQLite
SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL database with multiple tables, indices, triggers, and views, is contained in a single disk file.
Apache Aurora
Apache Aurora is a service scheduler that runs on top of Mesos, enabling you to run long-running services that take advantage of Mesos' scalability, fault-tolerance, and resource isolation.
See all alternatives
How developers use MySQL, Oracle, and PostgreSQL
AngeloR uses
PostgreSQL

We use postgresql for the merge between sql/nosql. A lot of our data is unstructured JSON, or JSON that is currently in flux due to some MVP/interation processes that are going on. PostgreSQL gives the capability to do this.

At the moment PostgreSQL on amazon is only at 9.5 which is one minor version down from support for document fragment updates which is something that we are waiting for. However, that may be some ways away.

Other than that, we are using PostgreSQL as our main SQL store as a replacement for all the MSSQL databases that we have. Not only does it have great support through RDS (small ops team), but it also has some great ways for us to migrate off RDS to managed EC2 instances down the line if we need to.

Cloudcraft uses
PostgreSQL

PostgreSQL combines the best aspects of traditional SQL databases such as reliability, consistent performance, transactions, querying power, etc. with the flexibility of schemaless noSQL systems that are all the rage these days. Through the powerful JSON column types and indexes, you can now have your cake and eat it too! PostgreSQL may seem a bit arcane and old fashioned at first, but the developers have clearly shown that they understand databases and the storage trends better than almost anyone else. It definitely deserves to be part of everyone's toolbox; when you find yourself needing rock solid performance, operational simplicity and reliability, reach for PostgresQL.

Brandon Adams uses
PostgreSQL

Relational data stores solve a lot of problems reasonably well. Postgres has some data types that are really handy such as spatial, json, and a plethora of useful dates and integers. It has good availability of indexing solutions, and is well-supported for both custom modifications as well as hosting options (I like Amazon's Postgres for RDS). I use HoneySQL for Clojure as a composable AST that translates reliably to SQL. I typically use JDBC on Clojure, usually via org.clojure/java.jdbc.

Rajeshkumar T uses
MySQL
  • We are used MySQL database to build the Online Food Ordering System

    • Its best support normalization and all joins ( Restaurant details & Ordering, customer management, food menu, order transaction & food delivery).
    • Best for performance and structured the data.
    • Its help to stored the instant updates received from food delivery app ( update the real-time driver GPS location).
Srinivas Adireddi uses
MySQL

1.It's very popular. Heared about it in Database class 2. The most comprehensive set of advanced features, management tools and technical support to achieve the highest levels of MySQL scalability, security, reliability, and uptime. 3. MySQL is an open-source relational database management system. Its name is a combination of "My", the name of co-founder Michael Widenius's daughter, and "SQL", the abbreviation for Structured Query Language.

ShadowICT uses
MySQL

We use MySQL and variants thereof to store the data for our projects such as the community. MySQL being a well established product means that support is available whenever it is required along with an extensive list of support articles all over the web for diagnosing issues. Variants are also used where needed when, for example, better performance is needed.

ReviewTrackers uses
PostgreSQL

PostgreSQL is responsible for nearly all data storage, validation and integrity. We leverage constraints, functions and custom extensions to ensure we have only one source of truth for our data access rules and that those rules live as close to the data as possible. Call us crazy, but ORMs only lead to ruin and despair.

shridhardalavi uses
MySQL

MySQL is a freely available open source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL). SQL is the most popular language for adding, accessing and managing content in a database. It is most noted for its quick processing, proven reliability, ease and flexibility of use.

Jeff Flynn uses
PostgreSQL

Tried MongoDB - early euphoria - later dread. Tried MySQL - not bad at all. Found PostgreSQL - will never go back. So much support for this it should be your first choice. Simple local (free) installation, and one-click setup in Heroku - lots of options in terms of pricing/performance combinations.

John Galbraith uses
MySQL

I am not using this DB for blog posts or data stored on the site. I am using to track IP addresses and fully qualified domain names of attacker machines that either posted spam on my website, pig flooded me, or had more that a certain number of failed SSH attempts.

Onezino Gabriel uses
Oracle

Gerenciamento de banco de dados utilizados por odos os serviços/aplicações criados

Adrian Harabulă uses
Oracle

recommended solution at school, also used to try out alternatives to MySQL

Satoru Ishikawa uses
Oracle

データベース構成設計や実際のデータ操作など。実作業では9i, 10g, 11gを触った。

Hyunwoo Shim uses
Oracle

Oracle을 통해 RDB를 학습하였습니다.

douglasresende uses
Oracle

I'm expert database.