2

How come MySQL Server software is bigger (in size) than SQLite? What makes it so big? Isn't it just about some network protocols and code that comes to save the tables and its entries?

SQLite, with the same language as MySQL, comes with only a 300kb library, but the MySQL Server is around 600mb in size.

1
  • 9
    You only think it's huge until you download Oracle: that's approx. 4.5 GB
    – user1822
    Oct 17, 2014 at 10:44

1 Answer 1

10

Consider that MySQL has a 31MB source code download. PostgreSQL has a 16MB source code download. SQLite has a 1.45MB source code download - please at least start by comparing like with like - comparing 300K with 600 MB isn't fair!

While it's true that SQLite can be made smaller, it's also possible to do the same with MySQL - there is an embedded version (I've never used it, so can't speak to its size).

MySQL also comes with a bunch of utilities (for backing up and checking integrity for example and there are many more - don't have a running system handy to go through them all).

Furthermore, MySQL supports a bunch of storage engines - SQLite does not.

And now the biggie - MySQL supports concurrent updates - SQLite does not. As D. Richard Hipp himself says, "SQLite is not designed to compete with Oracle. SQLite is designed to compete with fopen()".

I think he's being modest - his achievement with SQLite is impressive - but it is not a multi-user RDBMS. MySQL can certainly compete in many spheres that Oracle moves in which SQLite could never do - can you imagine running a telecoms system without concurrent updates? Just my 0.02c.

[EDIT in response to the comment of @jynus]

Yes, indeed, those figures are very interesting.

  • SQLite 212,680 lines of code
  • PostgreSQL 727,260 lines of code
  • MySQL 2,380,079 lines of code

Seeing as all of them are written in C/C++, it is a fairer comparison of size than MB of download.

It would be even more interesting to tease out what, exactly, these "lines of code" figures correspond to.

I.e. one could ask why SQLite has the broad functionality it does on 1/10 of the MySQL code base?

Or how come PostgreSQL is so much more competent an RDBMS than MySQL with 1/3 of the code?

And/or how many of the client tools and other assorted "fluff" are included in the MySQL source code line count?

Also, given that C++ should encapsulate more functionality per line than C, this would suggest that MySQL code is even less "efficient" (by the crude measure of lines of code).

(BTW, I'm putting on fire-retardant clothing as we speak! :-) )

Great topic for discussion - not sure how long it would last here though, more's the pity!

1
  • This can throw some light on the source code: openhub.net/p/mysql vs. openhub.net/p/sqlite (and the MySQL link only includes the Cluster 7.3, not other versions and projects- connectors, etc.)
    – jynus
    Oct 17, 2014 at 13:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.