I found an interesting article on high scalability web site where it talks about EBay scalability and especially a specific passage struck me:
"(Ebay strategies)...Move work out of the database into the applications because the database is the bottleneck. Ebay does this in the extreme. We see it in other architecture using caching and the file system, but eBay even does a lot of traditional database operations in applications (like joins)."
and the above is no mistake because again in the same article:
"Move cpu-intensive work moved out of the database layer to applications applications layer: referential integrity, joins, sorting done in the application layer! Reasoning: app servers are cheap, databases are the bottleneck."
Any explanation on this? If the above were true then I should only use the database for retrieving data and do all other operations in the programming logic.
I was always told the opposite: "databases are optimized for operations on data and complex selects so use them".
Any insight?