MySQL vs PostgreSQL vs SQLite

MySQL
MySQL

20.7K
5.6K
3.7K
PostgreSQL
PostgreSQL

14.9K
5.3K
3.4K
SQLite
SQLite

2.9K
62
504
- 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 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.

What is 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.

Want advice about which of these to choose?Ask the StackShare community!

Why do developers choose MySQL?
Why do developers choose PostgreSQL?
Why do developers choose SQLite?
What are the cons of using MySQL?
What are the cons of using PostgreSQL?
What are the cons of using SQLite?
What companies use MySQL?
What companies use PostgreSQL?
What companies use SQLite?
What are some alternatives to MySQL, PostgreSQL, and SQLite?
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.
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.
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
What tools integrate with MySQL?
What tools integrate with PostgreSQL?
What tools integrate with SQLite?
    No integrations found
      No integrations found
        No integrations found
        Decisions about MySQL, PostgreSQL, and SQLite
        StackBot 🤖
        StackBot 🤖
        MySQL
        PostgreSQL

        In 2014, Uber began working on Big Data Generation 1. Prior to 2014, all of the company’s data could fit into “a few traditional online transaction processing (OLTP) databases (in [their] case, MySQL and PostgreSQL ).” At that time, engineers were required to write individual code to access and join data across databases, a take made more difficult by the fact that there was no global view of all stored data, which was scattered around several OLTP databases with a “total data size on the order of a few terabytes.”

        They chose Vertica as the analytical data warehouse, because of “because of its fast, scalable, and column-oriented design. We also developed multiple ad hoc ETL (Extract, Transform, and Load) jobs that copied data from different sources (i.e. AWS S3, OLTP databases, service logs, etc.) into Vertica.

        See more
        StackBot 🤖
        StackBot 🤖
        MySQL
        PostgreSQL

        Uber's early architecture was a monolithic Python backend on top of Postgres. Between 2014 and 2016, Uber moved many applications off of Postgres and onto MySQL, accessed through a sharding layer built in-house called Schemaless.

        As the company scaled, Uber encountered issues with scaling writes due to write amplification issues (1 logical write causing 4 physical writes) and inefficient data replication with Postgres. Postgres replication works at the physical level, which means that it's not possible to replicate data between data bases running different versions. This added complexity and risk to upgrades.

        MySQL, and the InnoDB storage engine in particular, can do replication at the statement level, which poses less risks and works between versions. Uber also found MySQL's caching and connection pooling capabilities to provide superior performance for their use cases.

        See more
        Anton Sidelnikov
        Anton Sidelnikov
        Backend Developer at Beamery · | 5 upvotes · 8.8K views
        MongoDB
        PostgreSQL

        In my opinion PostgreSQL is totally over MongoDB - not only works with structured data & SQL & strict types, but also has excellent support for unstructured data as separate data type (you can store arbitrary JSONs - and they may be also queryable, depending on one of format's you may choose). Both writes & reads are much faster, then in Mongo. So you can get best on Document NoSQL & SQL in single database..

        Formal downside of PostgreSQL is clustering scalability. There's not simple way to build distributed a cluster. However, two points:

        1) You will need much more time before you need to actually scale due to PG's efficiency. And if you follow database-per-service pattern, maybe you won't need ever, cause dealing few billion records on single machine is an option for PG.

        2) When you need to - you do it in a way you need, including as a part of app's logic (e.g. sharding by key, or PG-based clustering solution with strict model), scalability will be very transparent, much more obvious than Mongo's "cluster just works (but then fails)" replication.

        See more
        Interest over time
        Reviews of MySQL, PostgreSQL, and SQLite
        No reviews found
        How developers use MySQL, PostgreSQL, and SQLite
        Avatar of AngeloR
        AngeloR uses PostgreSQLPostgreSQL

        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.

        Avatar of Cloudcraft
        Cloudcraft uses PostgreSQLPostgreSQL

        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.

        Avatar of Brandon Adams
        Brandon Adams uses PostgreSQLPostgreSQL

        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.

        Avatar of Rajeshkumar T
        Rajeshkumar T uses MySQLMySQL
        • 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).
        Avatar of Srinivas Adireddi
        Srinivas Adireddi uses MySQLMySQL

        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.

        Avatar of ShadowICT
        ShadowICT uses MySQLMySQL

        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.

        Avatar of ReviewTrackers
        ReviewTrackers uses PostgreSQLPostgreSQL

        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.

        Avatar of shridhardalavi
        shridhardalavi uses MySQLMySQL

        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.

        Avatar of Jeff Flynn
        Jeff Flynn uses PostgreSQLPostgreSQL

        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.

        Avatar of Romans Malinovskis
        Romans Malinovskis uses SQLiteSQLite

        We build queries in PHP with DSQL that work with SQLite. We also have SQLite data controller, so that you can build SQLite-based models.

        Avatar of John Galbraith
        John Galbraith uses MySQLMySQL

        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.

        Avatar of Coolfront Technologies
        Coolfront Technologies uses SQLiteSQLite

        Used during the "build process" of Coolfront Mobile's Flat rate search engine database. Flat rate data that resides in Salesforce is transformed using SQLite into a format that is usable for our mobile Flat rate search engine (AKA: Charlie).

        Avatar of Sripathi Krishnan
        Sripathi Krishnan uses SQLiteSQLite

        RDBTools is a self-hosted application, and it is important that the installation process is simple. With SQLite, we create a new database file for every analysis. Once the analysis is done, the SQLite file can be thrown away easily.

        Avatar of Perljobs.Ru
        Perljobs.Ru uses SQLiteSQLite

        All the dynamic data (i.e.: jobs) is stored in a simple SQLite database.

        Все динамические данные (вакансии) хранятся в простой SQLite БД.

        Avatar of A. M. Douglas
        A. M. Douglas uses SQLiteSQLite

        There's really no call for something heavier for this site. SQLite is simple, easy to use and quite reliable given its age.

        How much does MySQL cost?
        How much does PostgreSQL cost?
        How much does SQLite cost?
        Pricing unavailable
        Pricing unavailable
        Pricing unavailable