When building web sites, a popular demand is a maximum page load time.
For example, many would require < 0.5 seconds (or even less) for major pages loading time. Of course, there are numerous factors for page load time: network, caching, web servers, scripting language/code, database access and more.
Naturally I want to discuss the use of database access when creating web pages. I’ll be referring to dynamic web pages, such that are created by common languages as PHP, Java/J2EE, Ruby, ASP(.NET) etc.
A very common programming style is – what’s called in the Java jargon – using “scriptlets” as in the following JSP page:
<html>
<body>
Time now is <%= new java.util.Date() %>
</body>
</html>
The above replaces the “<%= new java.util.Date() %>” part with a text representation of the current time.
If I were to produce a dynamic content site, say, a WordPress blog, like the one you’re reading, I would need to generate several dynamic contents: the latest posts, the popular tags, the comments for this post, etc. These are generated by calling upon the database and running some queries. I suppose there’s nothing new in what I’ve explained so far.
The problem
When generating a “heavyweight” page, like some online newspaper or bookstore, there may be many queries involved. Are you logged in? Do we have recommendations for you? What are the latest topics? What have you been interested in before? Do you have friends online? What content have you produced on the website?
Continue reading » “The DB problem inherent to dynamic web pages”