MySQL vs SQLite

Get Advice Icon

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

MySQL
MySQL

23.9K
18.4K
+ 1
3.7K
SQLite
SQLite

3.4K
2.7K
+ 1
505
Add tool

MySQL vs SQLite: What are the differences?

What is MySQL? The world's most popular open source database. 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 SQLite? A software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. 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.

MySQL and SQLite can be categorized as "Databases" tools.

"Sql", "Free" and "Easy" are the key factors why developers consider MySQL; whereas "Lightweight", "Portable" and "Simple" are the primary reasons why SQLite is favored.

MySQL is an open source tool with 3.97K GitHub stars and 1.56K GitHub forks. Here's a link to MySQL's open source repository on GitHub.

According to the StackShare community, MySQL has a broader approval, being mentioned in 2991 company stacks & 3049 developers stacks; compared to SQLite, which is listed in 314 company stacks and 477 developer stacks.

- 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 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.
Get Advice Icon

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

Why do developers choose MySQL?
Why do developers choose SQLite?

Sign up to add, upvote and see more prosMake informed product decisions

What companies use MySQL?
What companies use SQLite?

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

What tools integrate with MySQL?
What tools integrate with SQLite?

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

What are some alternatives to MySQL and SQLite?
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.
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.
See all alternatives
Decisions about MySQL and SQLite
Kir Shatrov
Kir Shatrov
Production Engineer at Shopify · | 12 upvotes · 78.3K views
atShopifyShopify
Rails
Rails
MySQL
MySQL
Memcached
Memcached
Redis
Redis

As is common in the Rails stack, since the very beginning, we've stayed with MySQL as a relational database, Memcached for key/value storage and Redis for queues and background jobs.

In 2014, we could no longer store all our data in a single MySQL instance - even by buying better hardware. We decided to use sharding and split all of Shopify into dozens of database partitions.

Sharding played nicely for us because Shopify merchants are isolated from each other and we were able to put a subset of merchants on a single shard. It would have been harder if our business assumed shared data between customers.

The sharding project bought us some time regarding database capacity, but as we soon found out, there was a huge single point of failure in our infrastructure. All those shards were still using a single Redis. At one point, the outage of that Redis took down all of Shopify, causing a major disruption we later called “Redismageddon”. This taught us an important lesson to avoid any resources that are shared across all of Shopify.

Over the years, we moved from shards to the concept of "pods". A pod is a fully isolated instance of Shopify with its own datastores like MySQL, Redis, memcached. A pod can be spawned in any region. This approach has helped us eliminate global outages. As of today, we have more than a hundred pods, and since moving to this architecture we haven't had any major outages that affected all of Shopify. An outage today only affects a single pod or region.

See more
Kir Shatrov
Kir Shatrov
Production Engineer at Shopify · | 13 upvotes · 146K views
atShopifyShopify
Docker
Docker
Kubernetes
Kubernetes
Google Kubernetes Engine
Google Kubernetes Engine
MySQL
MySQL
Redis
Redis
Memcached
Memcached

At Shopify, over the years, we moved from shards to the concept of "pods". A pod is a fully isolated instance of Shopify with its own datastores like MySQL, Redis, Memcached. A pod can be spawned in any region. This approach has helped us eliminate global outages. As of today, we have more than a hundred pods, and since moving to this architecture we haven't had any major outages that affected all of Shopify. An outage today only affects a single pod or region.

As we grew into hundreds of shards and pods, it became clear that we needed a solution to orchestrate those deployments. Today, we use Docker, Kubernetes, and Google Kubernetes Engine to make it easy to bootstrap resources for new Shopify Pods.

See more
Jake Stein
Jake Stein
CEO at Stitch · | 15 upvotes · 61.8K views
atStitchStitch
Clojure
Clojure
MySQL
MySQL
PostgreSQL
PostgreSQL

The majority of our Clojure microservices are simple web services that wrap a transactional database with CRUD operations and a little bit of business logic. We use both MySQL and PostgreSQL for transactional data persistence, having transitioned from the former to the latter for newer services to take advantage of the new features coming out of the Postgres community.

Most of our Clojure best practices can be summed up by the phrase "keep it simple." We avoid more complex web frameworks in favor of using the Ring library to build web service routes, and we prefer sending SQL directly to the JDBC library rather than using a complicated ORM or SQL DSL.

See more
Gregory Koberger
Gregory Koberger
MongoDB
MongoDB
MySQL
MySQL
PostgreSQL
PostgreSQL
MongoDB Atlas
MongoDB Atlas
MongoLab
MongoLab
Compose
Compose

We went with MongoDB , almost by mistake. I had never used it before, but I knew I wanted the *EAN part of the MEAN stack, so why not go all in. I come from a background of SQL (first MySQL , then PostgreSQL ), so I definitely abused Mongo at first... by trying to turn it into something more relational than it should be. But hey, data is supposed to be relational, so there wasn't really any way to get around that.

There's a lot I love about MongoDB, and a lot I hate. I still don't know if we made the right decision. We've been able to build much quicker, but we also have had some growing pains. We host our databases on MongoDB Atlas , and I can't say enough good things about it. We had tried MongoLab and Compose before it, and with MongoDB Atlas I finally feel like things are in a good place. I don't know if I'd use it for a one-off small project, but for a large product Atlas has given us a ton more control, stability and trust.

See more
Antonio Sanchez
Antonio Sanchez
CEO at Kokoen GmbH · | 12 upvotes · 103.2K views
atKokoen GmbHKokoen GmbH
PHP
PHP
Laravel
Laravel
MySQL
MySQL
Go
Go
MongoDB
MongoDB
JavaScript
JavaScript
Node.js
Node.js
ExpressJS
ExpressJS

Back at the start of 2017, we decided to create a web-based tool for the SEO OnPage analysis of our clients' websites. We had over 2.000 websites to analyze, so we had to perform thousands of requests to get every single page from those websites, process the information and save the big amounts of data somewhere.

Very soon we realized that the initial chosen script language and database, PHP, Laravel and MySQL, was not going to be able to cope efficiently with such a task.

By that time, we were doing some experiments for other projects with a language we had recently get to know, Go , so we decided to get a try and code the crawler using it. It was fantastic, we could process much more data with way less CPU power and in less time. By using the concurrency abilites that the language has to offers, we could also do more Http requests in less time.

Unfortunately, I have no comparison numbers to show about the performance differences between Go and PHP since the difference was so clear from the beginning and that we didn't feel the need to do further comparison tests nor document it. We just switched fully to Go.

There was still a problem: despite the big amount of Data we were generating, MySQL was performing very well, but as we were adding more and more features to the software and with those features more and more different type of data to save, it was a nightmare for the database architects to structure everything correctly on the database, so it was clear what we had to do next: switch to a NoSQL database. So we switched to MongoDB, and it was also fantastic: we were expending almost zero time in thinking how to structure the Database and the performance also seemed to be better, but again, I have no comparison numbers to show due to the lack of time.

We also decided to switch the website from PHP and Laravel to JavaScript and Node.js and ExpressJS since working with the JSON Data that we were saving now in the Database would be easier.

As of now, we don't only use the tool intern but we also opened it for everyone to use for free: https://tool-seo.com

See more
Tim Abbott
Tim Abbott
Founder at Zulip · | 20 upvotes · 114.6K views
atZulipZulip
PostgreSQL
PostgreSQL
MySQL
MySQL
Elasticsearch
Elasticsearch

We've been using PostgreSQL since the very early days of Zulip, but we actually didn't use it from the beginning. Zulip started out as a MySQL project back in 2012, because we'd heard it was a good choice for a startup with a wide community. However, we found that even though we were using the Django ORM for most of our database access, we spent a lot of time fighting with MySQL. Issues ranged from bad collation defaults, to bad query plans which required a lot of manual query tweaks.

We ended up getting so frustrated that we tried out PostgresQL, and the results were fantastic. We didn't have to do any real customization (just some tuning settings for how big a server we had), and all of our most important queries were faster out of the box. As a result, we were able to delete a bunch of custom queries escaping the ORM that we'd written to make the MySQL query planner happy (because postgres just did the right thing automatically).

And then after that, we've just gotten a ton of value out of postgres. We use its excellent built-in full-text search, which has helped us avoid needing to bring in a tool like Elasticsearch, and we've really enjoyed features like its partial indexes, which saved us a lot of work adding unnecessary extra tables to get good performance for things like our "unread messages" and "starred messages" indexes.

I can't recommend it highly enough.

See more
Conor Myhrvold
Conor Myhrvold
Tech Brand Mgr, Office of CTO at Uber · | 6 upvotes · 85.1K views
atUber TechnologiesUber Technologies
PostgreSQL
PostgreSQL
MySQL
MySQL
Python
Python

Our most popular (& controversial!) article to date on the Uber Engineering blog in 3+ yrs. Why we moved from PostgreSQL to MySQL. In essence, it was due to a variety of limitations of Postgres at the time. Fun fact -- earlier in Uber's history we'd actually moved from MySQL to Postgres before switching back for good, & though we published the article in Summer 2016 we haven't looked back since:

The early architecture of Uber consisted of a monolithic backend application written in Python that used Postgres for data persistence. Since that time, the architecture of Uber has changed significantly, to a model of microservices and new data platforms. Specifically, in many of the cases where we previously used Postgres, we now use Schemaless, a novel database sharding layer built on top of MySQL (https://eng.uber.com/schemaless-part-one/). In this article, we’ll explore some of the drawbacks we found with Postgres and explain the decision to build Schemaless and other backend services on top of MySQL:

https://eng.uber.com/mysql-migration/

See more
Khauth György
Khauth György
CTO at SalesAutopilot Kft. · | 12 upvotes · 115.1K views
atSalesAutopilot Kft.SalesAutopilot Kft.
Amazon CloudWatch
Amazon CloudWatch
Amazon SNS
Amazon SNS
Amazon CloudFront
Amazon CloudFront
Amazon Route 53
Amazon Route 53
MySQL
MySQL
MongoDB
MongoDB
Redis
Redis
jQuery UI
jQuery UI
Vue.js
Vue.js
Vuetify
Vuetify
vuex
vuex
Docker
Docker
Jenkins
Jenkins
AWS CodePipeline
AWS CodePipeline
GitHub
GitHub

I'm the CTO of a marketing automation SaaS. Because of the continuously increasing load we moved to the AWSCloud. We are using more and more features of AWS: Amazon CloudWatch, Amazon SNS, Amazon CloudFront, Amazon Route 53 and so on.

Our main Database is MySQL but for the hundreds of GB document data we use MongoDB more and more. We started to use Redis for cache and other time sensitive operations.

On the front-end we use jQuery UI + Smarty but now we refactor our app to use Vue.js with Vuetify. Because our app is relatively complex we need to use vuex as well.

On the development side we use GitHub as our main repo, Docker for local and server environment and Jenkins and AWS CodePipeline for Continuous Integration.

See more
Julien DeFrance
Julien DeFrance
Principal Software Engineer at Tophatter · | 16 upvotes · 501.1K views
atSmartZipSmartZip
Rails
Rails
Rails API
Rails API
AWS Elastic Beanstalk
AWS Elastic Beanstalk
Capistrano
Capistrano
Docker
Docker
Amazon S3
Amazon S3
Amazon RDS
Amazon RDS
MySQL
MySQL
Amazon RDS for Aurora
Amazon RDS for Aurora
Amazon ElastiCache
Amazon ElastiCache
Memcached
Memcached
Amazon CloudFront
Amazon CloudFront
Segment
Segment
Zapier
Zapier
Amazon Redshift
Amazon Redshift
Amazon Quicksight
Amazon Quicksight
Superset
Superset
Elasticsearch
Elasticsearch
Amazon Elasticsearch Service
Amazon Elasticsearch Service
New Relic
New Relic
AWS Lambda
AWS Lambda
Node.js
Node.js
Ruby
Ruby
Amazon DynamoDB
Amazon DynamoDB
Algolia
Algolia

Back in 2014, I was given an opportunity to re-architect SmartZip Analytics platform, and flagship product: SmartTargeting. This is a SaaS software helping real estate professionals keeping up with their prospects and leads in a given neighborhood/territory, finding out (thanks to predictive analytics) who's the most likely to list/sell their home, and running cross-channel marketing automation against them: direct mail, online ads, email... The company also does provide Data APIs to Enterprise customers.

I had inherited years and years of technical debt and I knew things had to change radically. The first enabler to this was to make use of the cloud and go with AWS, so we would stop re-inventing the wheel, and build around managed/scalable services.

For the SaaS product, we kept on working with Rails as this was what my team had the most knowledge in. We've however broken up the monolith and decoupled the front-end application from the backend thanks to the use of Rails API so we'd get independently scalable micro-services from now on.

Our various applications could now be deployed using AWS Elastic Beanstalk so we wouldn't waste any more efforts writing time-consuming Capistrano deployment scripts for instance. Combined with Docker so our application would run within its own container, independently from the underlying host configuration.

Storage-wise, we went with Amazon S3 and ditched any pre-existing local or network storage people used to deal with in our legacy systems. On the database side: Amazon RDS / MySQL initially. Ultimately migrated to Amazon RDS for Aurora / MySQL when it got released. Once again, here you need a managed service your cloud provider handles for you.

Future improvements / technology decisions included:

Caching: Amazon ElastiCache / Memcached CDN: Amazon CloudFront Systems Integration: Segment / Zapier Data-warehousing: Amazon Redshift BI: Amazon Quicksight / Superset Search: Elasticsearch / Amazon Elasticsearch Service / Algolia Monitoring: New Relic

As our usage grows, patterns changed, and/or our business needs evolved, my role as Engineering Manager then Director of Engineering was also to ensure my team kept on learning and innovating, while delivering on business value.

One of these innovations was to get ourselves into Serverless : Adopting AWS Lambda was a big step forward. At the time, only available for Node.js (Not Ruby ) but a great way to handle cost efficiency, unpredictable traffic, sudden bursts of traffic... Ultimately you want the whole chain of services involved in a call to be serverless, and that's when we've started leveraging Amazon DynamoDB on these projects so they'd be fully scalable.

See more
Ajit Parthan
Ajit Parthan
CTO at Shaw Academy · | 1 upvotes · 5.1K views
atShaw AcademyShaw Academy
MySQL
MySQL
MongoDB
MongoDB
#NosqlDatabaseAsAService

Initial storage was traditional MySQL. The pace of changes during a startup mode made it very difficult to have a clean and consistent schema. Large portions ended up as unstructured data stuffed into CLOBs and BLOBs.

Moving to MongoDB definitely made this part much easier.

Accessing data for analysis is a little bit of a challenge - especially for people coming from the world of SQL Workbench. But with tools like Exploratory this is becoming less of a problem.

#NosqlDatabaseAsAService

See more
Alex A
Alex A
Founder at PRIZ Guru · | 6 upvotes · 8.5K views
atPRIZ GuruPRIZ Guru
MySQL
MySQL
PostgreSQL
PostgreSQL

One of our battles at the very beginning of the road was choosing the right database. In fact, our first prototype was built on MySQL and back then nothing else was even under a consideration (don't ask me why). At some point, I was working on a project which was running on PostgreSQL and it is only then I understood the full power of it. We have over a billion of records in production instance, and we are able to optimize it to run fast and reliable. Well, now my default DB is PostgreSQL :)

See more
Tor Hagemann
Tor Hagemann
at Socotra · | 2 upvotes · 2.2K views
atSocotraSocotra
MySQL
MySQL
PostgreSQL
PostgreSQL
Amazon DynamoDB
Amazon DynamoDB

Much of our data model is relational, which makes MySQL or PostgreSQL (and family) fit the API's we need to build, in order to meet the needs of our customers.

Sometimes the flexibility of a NoSQL store like Amazon DynamoDB is very useful, but the lack of consistency really impacts usability and performance long-term, compared with viable alternatives. At our current scale, we've seen huge benefits from moving some of our tables out of Dynamo and doing more in SQL.

There will always be use cases for NoSQL and key-values stores, but if your model is well understood in your business/industry: relational databases are the way to go after finding product-market fit. Always understand the trade-offs (and a few intimate details) of any data store before you add to your company's stack!

See more
Joseph Irving
Joseph Irving
DevOps Engineer at uSwitch · | 8 upvotes · 8.1K views
atuSwitchuSwitch
Vault
Vault
Kubernetes
Kubernetes
MySQL
MySQL
PostgreSQL
PostgreSQL
Go
Go

At uSwitch we use Vault to generate short lived database credentials for our applications running in Kubernetes. We wanted to move from an environment where we had 100 dbs with a variety of static passwords being shared around to a place where each pod would have credentials that only last for its lifetime.

We chose vault because:

  • It had built in Kubernetes support so we could use service accounts to permission which pods could access which database.

  • A terraform provider so that we could configure both our RDS instances and their vault configuration in one place.

  • A variety of database providers including MySQL/PostgreSQL (our most common dbs).

  • A good api/Go -sdk so that we could build tooling around it to simplify development worfklow.

  • It had other features we would utilise such as PKI

See more
Daniel Quinn
Daniel Quinn
Senior Developer at Workfinder · | 2 upvotes · 33.6K views
atThe Paperless ProjectThe Paperless Project
SQLite
SQLite
PostgreSQL
PostgreSQL

SQLite is a tricky beast. It's great if you're working single-threaded, but a Terrible Idea if you've got more than one concurrent connection. You use it because it's easy to setup, light, and portable (it's just a file).

In Paperless, we've built a self-hosted web application, so it makes sense to standardise on something small & light, and as we don't have to worry about multiple connections (it's just you using the app), it's a perfect fit.

For users wanting to scale Paperless up to a multi-user environment though, we do provide the hooks to switch to PostgreSQL .

See more
C#
C#
.NET Core
.NET Core
MySQL
MySQL
MongoDB
MongoDB

Hi! I needed to choose a full stack of tools for a web drop shipping site without the payment process for a family startup proyect. It will feed from several web services (JSON), I'm looking forward a 4,200 articles tops. For web use only and for a few clients at the beginning.

I'm considering C# with .NET Core 3.0 as is the one language I'm starting to learn. For the Database I haven´t made my mind yet, but could be MySQL or MongoDB any advice is welcome as I'm getting back to programming after year away from this awesome world. Thanks

See more
Interest over time
Reviews of MySQL and SQLite
No reviews found
How developers use MySQL and SQLite
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 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 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 SQLite cost?
Pricing unavailable
Pricing unavailable