Without a WHERE clause, is supposed to
return all the data in the table, and so a table scan is the correct (if not
desirable) behavior. (More about that in .)
creates indexes
on tables in the following situations:
- When you define a primary key, unique, or foreign key constraint on a
table. See "CONSTRAINT clause" in the for
more information.
- When you explicitly create an index on a table with a CREATE INDEX statement.
For an index to be useful for a particular statement, one of the columns
in the statement's WHERE clause must be the first column in the index's key.
For a complete discussion of how indexes work and when they are useful,
see and .
Indexes provide some other benefits as well:
- If all the data requested are in the index, does
not have to go to the table at all. (See .)
- For operations that require a sort (ORDER BY), if uses
the index to retrieve the data, it does not have to perform a separate sorting
step for some of these operations in some situations. (See .)
does
not support indexing on columns with data types like BLOB, CLOB, and XML.