Library tutorials & articles

MySQL Tutorial

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

Comments

  1. 18 May 2009 at 17:00

    More good mysql examples:

    http://www.examplenow.com/mysql/alter

    --John

  2. 05 Aug 2008 at 13:25

     

    Dear Sir/ Madam

        I need your help, how to done replication method in MySQL Server. or if any automatic schedule scripting awailble. pls send my mail id as soon as possible.

    i will waiting for your mail

    email : vinaymeetu@ymail.com, or vinaywaiting4u@gmail.com,

    Regards

    Vinay.G.Liyar

  3. 01 Jan 1999 at 00:00

    This thread is for discussions of MySQL Tutorial.

Leave a comment

Sign in or Join us (it's free).

Gez Lemon I'm available for contract work. Please visit Juicify for details.

Related podcasts

  • Scaling Large Web Sites with Joe Stump, Lead Architect at DIGG

    Have you ever wanted to learn how top 100 web sites are architected? Deep Fried Bytes hosts Keith Elder and Chris Woodruff sat down with Joe Stump, Lead Architect at DIGG to discuss scaling large web sites, his life, development experiences and team building. Listen to the showThanks to our gues...

Events coming up

  • Dec 3

    The Auckland PHP December meetup

    Auckland, New Zealand

    Topic: Magento E-Commerce platform Speaker: Robert Popovic, LERO9, Robert is the Technical Director and co-founder of LERO9. Robert attended the Electrotechnical Faculty at The University of Belgrade where he graduated with a Masters in Computer Science and Information Technology. Robert has worked exclusively in the field of web and software development throughout his career.

We'd love to hear what you think! Submit ideas or give us feedback