Using Indexes
Creating an Index
Indexes allow you to specify an index for a table to speed up searching.
Primary keys are automatically indexed, but you can add indexes to other
fields to
allow them to be easily searchable. The database has to maintain the indexes,
so it's not a good idea to make every field an index. The following example
provides an index called keyIndex for a field called keywords.
INDEX keyIndex(Kewords)
You can specify how many characters you wish to index
in a field. The following example creates an index on the first 100 characters
of the field, Keywords.
INDEX keyIndex(Keywords(100))
Creating a Compound Index
You can create an index on more than one table by specifying a comma separated
list. The following example creates a compound index on the first 100
characters of the Keywords field, and the Description field.
INDEX compoundIndex(Keywords(100), Description)
The indexes are from left to
right. Therefore, in the example, indexes are only created for Descriptions
where Keywords exist.
Creating Unique Indexes
The UNIQUE specifier may be used to ensure that indexes are unique. The following
example requires that the values assigned to the first 100 characters of
the Keywords field are unique.
UNIQUE INDEX keyIndex(Keywords(100))
The following example creates a table
called search, with an Index on the first 100 characters of the Keywords
field.
createSearch.sql
CREATE TABLE search
(
Category VARCHAR(100) NOT NULL,
Page VARCHAR(20) NOT NULL,
Directory VARCHAR(255) NOT NULL,
LinkName VARCHAR(255) NOT NULL,
Kewords MEDIUMTEXT NOT NULL,
Desription VARCHAR(255) NOT NULL,
PRIMARY KEY(Page, Directory),
INDEX keyIndex(Keywords(100))
);
The file may then be used with MySQL as follows:
mysql> \. createSearch.sql