SQLite is likely used more than all other database engines combined
sqlite.org
sqlite.org
In terms of total data, probably not.
In terms of important data, 100% not. Important data needs guarantees, and its privacy is second to its longevity.
Server side and centralized beats client side decentralized for all but sensitive consumer data.
As far as important data served from a relational database is concerned, MySQL most likely beats the hell out of everything in terms of popularity. The bulk of SQLite’s usage has to be various runtime caches, file data, and so on.
we have been living in a psql era for longer than mysql, so it has had enough time to catchup.
If you feel otherwise it's probably that memory bias effect where distant events seem closer and we underestimate the passage of time,
There's an xkcd for that
"The death of mysql(2010) is closer to its birth(1995) than to the present (2025)" will become a true statement next year.
It's obviously going to be hard to determine a number for a statistic like "most popular", and there are always very different interpretations of the available numbers, ending up with vastly different rankings.
I.e. this one keeps Oracle DB at place 1, mysql at second: https://db-engines.com/en/ranking
It links to their method at the top of the statistics. (Oracle has basically a DB monopoly if you believe that ranking, as these are both owned by them)
It's dataset is probably flawed, but I think we can say
"Rumors of mysqls death have been greatly exaggerated"
Easier to copy/replicate, packaged with a GUI, provider with a commercial relationship, programmatic support ( formulas, vba, COM, raw data access)
Would be closer to sqlite than server side though, but it's capacity for replication and sharing makes it more adecuate for sqlite.
Sqlite's lack of GUI gives data a programmer bias, important data uses excel because unless you are in a technocratic environment.
It also happens to be a SQLlite3 database. And the same is true for a slew of other applications that (quite rightly) use SQLite databases as their file format.
You might be thinking of things like financial transactions, or medical records, but that's not the only kind of important data there is.
The amount of hell that would be unleashed if the financial systems layers upon layers of database transactions got broken is impossible to comprehend.
So if you mean “important” as “necessary for society to function”, then no, your browser bookmark files, contact list, or the other two dozen things your laptop and phone use SQLite for are not important.
Better to compare to the prospect of all smartphones being irreversibly corrupted at once.
You can not restore a data center from a pile of phones.
It's all semantics, and also irrelevant to the original article anyway, since nowhere does it argue that SQLite holds the most data (important or otherwise).
For what it’s worth, I have used any number of databases over the years and SQLite is very good for a number of things.
None of those things are the core infrastructure that stores your emails, money, and other must have, shared, high availability data.
There are different tools for different jobs, that’s fine.
I venture a guess that for each sqlite db holding important work data, you have dozens or hundreds of traditional db datasets, that are critical to your work. And yes, I mean your bank, but also messaging apps, online services.
If you backup your hard drive in the cloud at all, you are already depending on trad dbs for the very use case supposedly highlighting your dependence on sqlite.
So is contacts list, sms messages, Whatsapp data, browser data etc etc. whese are separate installations of sqlite, hundreds per phone. And they ARE important, at least to me.
My contacts are stored in my sim chip or google(server), also they are shared with many apps (server), whatsapp msgs are backed up to google drive (server), and itself stored on server side whatsapp servers.
Broswer data is sqlite yes, but it is also flushed every couple of months, and is by design ephemeral.
Huge SQL for servers is just a different use case.
Someone's temporary browser data or settings for my android alarm app could be just as important and sensitive as an average record on those big servers.
Fortunatelly, SQL fits the role of a small transactional engine very well to support those small use cases for a large number of applications. It deserves the good reputation.
> In terms of important data, 100% not.
Choosing not to focus upon quantity or quality is likely the reason why SQLite is so popular. It is a lot easier to manage and develop for SQLite than it is to do the same for large databases that require high availability and reliability under heavy loads. There are many more applications for small databases that contain data that is important to the end user even though that data may not be important to anyone else.
I'd say if the data is important and client side, you'd probably want it to be accesible in a protocol format rather than a sqlite file format.
It's cool that sqlite is open source and u can technically recover the data, but at the end of the day excel data is more accesible, which defeats the ethos of open sourceness
Works great there too with μC/OS-II. Competition was using Windows XP and Microsoft Access.
Only time ever using Oracle has been with internal business analytics, not very important.
SQLite works on the server too. Important data can live in a SQLite database.
Have an mvp you’re not sure you’ll ever have more that 2 users - yep.
Storing a little data for an application on the disk and don’t want to write your own schema.
Want to teach someone how databases work without setting up a sever - sure.
- Want to distribute data to users that don't want to manage a server? A lot of people don't want to manage a server and don't need the best possible performance.
- Want to take data with you on a thumb drive and work with it offline? It's extremely convenient to be able to use SQLite for an app that has to work offline.
- Does the app mostly just read from the database and fit in memory? It's undervalued to just put the entire database into memory so you don't hit the disk and don't introduce network latency. For example, the following website does all enrichment with in-memory SQLite databases: https://shdn.io/analyze?target=ycombinator.com
At Shodan, we distribute versions of our datasets as SQLite and they're a popular way to consume the data without having to manage infrastructure.
Personally, I find the tooling, documentation, familiarity and quality of Postgresql makes it my choice even in situations where SQLite might work.
SQLite is also quite often a CI/CD default when building and testing software where you might want to do some tests without starting an entire RDBMS server.
But I suppose it's different if we think in terms of networked databases, or multiuser.
Suffice to say SQLite is probably at least 6bn active usages in size.
(cf. Daniel Stenberg getting angry emails because everybody and their dog embeds libcurl, sometimes multiple times in the same app)
** 2006-10-31: The default prefix used to be "sqlite_". But then
** Mcafee started using SQLite in their anti-virus product and it
** started putting files with the "sqlite" name in the c:/temp folder.
** This annoyed many windows users. Those users would then do a
** Google search for "sqlite", find the telephone numbers of the
** developers and call to wake them up at night and complain.
** For this reason, the default name prefix is changed to be "sqlite"
** spelled backwards. So the temp files are still identified, but
** anybody smart enough to figure out the code is also likely smart
** enough to know that calling the developer will not help get rid
** of the file.So it's hard to understand which similarity you're asking about, but SQLite is popular because it does one thing, and does that one thing really well, and that thing also happens to be a perfect fit for complex file formats.
When developing iOS and Android apps, the "default" frameworks for storing data (Core Data for iOS, Room for Android) are wrappers around sqlite.
I would guess >50% of apps installed on your phone uses sqlite.
Unfortunately, I wish there were multiple implementations of it, and that the file format was documented and stable.
https://sqlite.org/fileformat2.html https://sqlite.org/lts.html https://sqlite.org/locrsf.html
https://www.sqlite.org/th3.html see bottom
They gatekeep their product sure, but you need to do that if you want to sell it.
Amazying piece of code whatever you look at it.
I'd also probably win test to code ratio contest.
This irony has layers. Like an onion.
Keeping your playlists in a specific music player app’s SQLite database forces you to use that app to search or delete or share those playlists. Heck, some apps use SQLite blob storage to store images or even music files.
Open software should use open file formats and store data in the file system where other programs can access it.
That's what SQLite is.