Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
admin:indexing:concepts:aggregations [2011/03/17 21:54]
deb
admin:indexing:concepts:aggregations [2016/06/28 22:38] (current)
Line 3: Line 3:
 {{page>:​top_add&​nofooter&​noeditbtn}} {{page>:​top_add&​nofooter&​noeditbtn}}
  
-====== Administration:​ Indexing ​Strategies ​======+====== Administration: ​Omnidex ​Indexing ======
  
 ===== Indexing Concepts ===== ===== Indexing Concepts =====
Line 26: Line 26:
 The following query requests a simple count from a table.  ​ The following query requests a simple count from a table.  ​
  
-<​code ​sql>+<​code>​
  
   select ​       count(*)   select ​       count(*)
Line 42: Line 42:
 Queries that aggregate data often use GROUP BY clauses or other aggregation functions. ​ These queries can be optimized with Omnidex indexing as well.  The following query shows counts from the HOUSEHOLDS table aggregated by STATE, CITY and ZIP. Queries that aggregate data often use GROUP BY clauses or other aggregation functions. ​ These queries can be optimized with Omnidex indexing as well.  The following query shows counts from the HOUSEHOLDS table aggregated by STATE, CITY and ZIP.
  
-<​code ​sql>+<​code>​
  
   select ​       STATE, CITY, ZIP, count(*)   select ​       STATE, CITY, ZIP, count(*)
Line 49: Line 49:
 </​code>​ </​code>​
  
 +An index has the advantage of already being in sorted order. ​ If the STATE, CITY and ZIP columns are all individually indexed with Omnidex, then these three indexes will be used in combination to perform the aggregation. ​ The STATE index will be scanned, followed by the CITY index, followed by the ZIP index. ​ The aggregations can be returned without accessing the database.  ​
  
-An index has the advantage of already being in sorted order. ​ If a multi-column index contains all of the columns in the GROUP BY clauseas well as all of the columns ​referenced in COUNT, ​SUM, AVERAGE, MIN and MAX functions, the index can simply be scanned in sorted order, and the aggregations can be returned without accessing the database.  ​Therefore, a multi-column ​ index containing STATE, CITY and ZIP would allow this query to be optimized without accessing the database.+Some aggregations benefit from multi-column ​indexes, such as a single ​index with the STATECITY and ZIP.  This is more efficient than using three separate indexes, and is especially important if any of the columns ​contain fairly unique values. ​ It is also required for aggregations that use the SUM, AVERAGE, MIN and MAX functions.  ​
  
-This technique ​can be used even after other indexes have been used to process criteria. ​ After the criteria has been processed, the isolated record pointers can be used as a filter when the aggregation index is scanned. ​ This allows for great flexibility,​ since the columns referenced in criteria do not need to be included in the aggregation index. ​ In the following query, the same aggregations are restricted to people in the United States.  ​+These techniques ​can be used even after other indexes have been used to process criteria. ​ After the criteria has been processed, the isolated record pointers can be used as a filter when the aggregation index is scanned. ​ This allows for great flexibility,​ since the columns referenced in criteria do not need to be included in the aggregation index. ​ In the following query, the same aggregations are restricted to people in the United States.  ​
  
-<​code ​sql>+<​code>​
  
   select ​       STATE, CITY, ZIP, count(*)   select ​       STATE, CITY, ZIP, count(*)
 
Back to top
admin/indexing/concepts/aggregations.1300398895.txt.gz ยท Last modified: 2016/06/28 22:38 (external edit)