Why is MySQL Server software so huge? 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.
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!