Large Product catalog with statistics - alternatives to Sql Server?

Posted by Eric P on Stack Overflow See other posts from Stack Overflow or by Eric P
Published on 2010-04-20T14:33:30Z Indexed on 2010/04/20 15:43 UTC
Read the original article Hit count: 186

Filed under:
|
|

I am building UI for a large product catalog (millions of products).

I am using Sql Server, FreeText search and ASP.NET MVC.
Tables are normalized and indexed. Most queries take less then a second to return.

The issue is this. Let's say user does the search by keyword. On search results page I need to display/query for:

  1. First 20 matching products (paged, sorted)
  2. Total count of matching products for paging
  3. List of stores only of matching products
  4. List of brands only of matching products
  5. List of colors only of matching products

Each query takes about .5 to 1 seconds. Altogether it is like 5 seconds.

I would like to get the whole page to load under 1 second.
There are several approaches:

  1. Optimize queries even more. I already spent a lot of time on this one, so not sure it can be pushed further.

  2. Load products first, then load the rest of the information using AJAX. More like a workaround. Will need to revise UI.

  3. Re-organize data to be more Report friendly. Already aggregated a lot of fields.

I checked out several similar sites. For ex. zappos.com. Not only they display the same information as I would like in under 1 second, but they also include statistics (number of results in each category).

The following is the search for keyword "white" http://www.zappos.com/white

How do sites like zappos, amazon make their results, filters and stats appear almost instantly?

© Stack Overflow or respective owner

Related posts about sql-server

Related posts about ASP.NET