Random Thoughts - mostly from other great minds ..but sometimes my own

  • From everything that I have been told, people say that the database is the bottleneck in a data-driven application.
  • Indexing strategy - "whats always in the where clause"
  • A covering index simply means that your query only uses data from an index and thus never has to go to the actual table. For example, you might create a covering index on your Users table that includes Username, Password, and IsActive. It seems like the index would only need to cover the Username as that's the real key, but if you include all three then a simple login-validation query wouldn't need to go to the actual table, it could just use the index.
  • Database Normalization eliminates redundant data, which usually makes updates faster since there is less data to change. However a Normalized schema causes joins for queries, which makes queries slower, denormalization speeds retrieval. More normalized schemas are better for applications involving many transactions, less normalized are better for reporting types of applications.  You should normalize your schema first, then de-normalize later.  Applications often need to mix the approaches, for example use a partially normalized schema, and duplicate, or cache, selected columns from one table in another table. 
  • WeakHashMap : http://www.devdaily.com/blog/post/java/how-use-java-weakhashmap-class-example