# Improving the Performance of `SELECT` Statements
+ Avoid full table scans wherever possible
+ Consider adding indexes on:
  + Columns in the `WHERE` clause
  + Columns that participate in table joins
+ Isolate and investigate independent parts of the query
  + For example, does an expression evaluate more frequently than required?
+ Use `ANALYZE TABLE` periodically or enable the auto gathering job to keep the optimizer statistics up-to-date
------------------------------------------------------------------------------
To enhance the performance of a slow `SELECT` query, the first step is to consider indexing the tables referenced by the query. In some cases, you can leverage existing indexes to improve query performance by rewriting the query or breaking it into two separate queries. Occasionally, it may be necessary to add new indexes.

Add indexes on columns used in the `WHERE` clause to enhance the performance of condition evaluation, row filtering, and result retrieval. Minimize wasted disk space by maintaining a small set of indexes that can support many related queries used by your application.

Verify that the index is being utilized correctly by the optimizer by issuing an EXPLAIN on the statement. If the optimizer is not using the appropriate index, consider employing optimizer hints.

Develop the habit of reviewing your `SELECT` statements to understand how the optimizer rewrites them, and apply similar techniques when formulating your own queries.