This question already has an answer here:
1) Ethereum needs to store lots of data whose identifier can be said to be purely random. It makes use of LevelDB, whose indexing/sorting properties are useless here since the very key is random.
The obvious questions are - why LevelDB? Why not MySQL for instance, so to drastically improve information retrieval performance. (introduce indexing based on block height etc) Let's forget the security/ concurrency aspects which I've seen brought up. The purpose of a database is to facilitate efficient data storage and retrieval. Proper software design should be able to secure access to a local MySQL instance as well.
Thus, what's the rationale?
2) How is the data laid out in the database?