Overview | Criteria | Table Joins | Aggregations | Ordering
The basic strategy for improving query performance is to index all of the columns that are used in criteria, table joins, aggregations and ordering. This is a different approach than is taken with relational databases. Database administrators are usually trained to identify selected columns that are most frequently used and create indexes only on those columns. Their general expectation is that the relational database will choose an index to access a table and will process the rest of the statement by directly evaluating the data.
Omnidex approaches indexing differently. Omnidex indexes all of the columns and then coordinates use of all of the indexes to fulfill the different aspects of a query. Some indexes will be used to satisfy table joins or criteria. Other indexes will be used to fulfill aggregations or ordering. Most database administrators are surprised to learn that complex SQL statements which join many tables and contain intricate criteria can often be fulfilled without ever accessing the underlying data. This approach allows Omnidex to process queries very quickly. It also reduces the load on the servers since accessing the data is a common cause of performance problems.
Most indexing strategies are developed by analyzing the queries. Queries usually follow patterns and these patterns give clues to the best indexing approach. Analyze the queries to determine which columns are used in the WHERE clause, which tables are joined together in the FROM clause, which columns are aggregated or used in GROUP BY clauses, and which columns are used in the ORDER BY clause. Use the discussions in this section to create indexes for these columns and then run sample queries to assess their performance. Query plans will show how the indexes were used, and if the query is not fully optimized, revisit the indexing strategy as needed.
These basic indexing strategies will handle the majority of queries in most applications; however, queries can also be deceivingly unique. After using these strategies, it is recommended to review a wide range of queries to insure that they are properly optimized.
See also: