I have read that using SQLite for a high volume web site is not advised
because of the single-threaded, one-at-a-time nature of SQLite and
Rails. They say that it is better to use a multithreaded database server
based database such as MySQL, PostgreSQL, etc. I assume that this is to
be able to “concurrently” handle large number of database access
However there is a new configuration that uses Apache 2.x (with
mod_load_balancer) to forward requests to a cluster of Mongrels (a Ruby
web server for rails), which then accesses the database through the
Rails application. My understanding is that Apache 2.x is multithreaded.
My question is…if Apache is going to handle the multithreadedness of
the applications, why does the database also have to be multithreaded
for high-volume applications? For example, suppose that I have an
application with Apache 2.x, mod_load_balancer, Mongrel, Rails and my
appilcation and using an SQLite database, what is the compelling reason
to go for this versus MySQL, given that Apache 2.x can handle multiple
web requests at the same time?
For the question above, if there is no good multithreading-related
reason to go to a server-based database, then will I still get
multthreadedness in some degree if I choose to have Apache forward
requests to only one Mongrel/Rails/myApp/SQLite cluster?