поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    6.5.7. Синтаксис оператора CREATE INDEX

    CREATE [UNIQUE|FULLTEXT] INDEX index_name
            ON tbl_name (col_name[(length)],... )
    

    Команда CREATE INDEX в версиях MySQL до 3.22 не выполняет никаких действий. В версии 3.22 и более поздних CREATE INDEX соответствует команде ALTER TABLE в части создания индексов. See Раздел 6.5.4, «Синтаксис оператора ALTER TABLE».

    Обычно все индексы создаются в таблице во время создания самой таблицы командой CREATE TABLE. See Раздел 6.5.3, «Синтаксис оператора CREATE TABLE». CREATE INDEX дает возможность добавить индексы к существующим таблицам.

    Список столбцов в форме (col1,col2,...) создает индекс для нескольких столбцов. Величины индексов формируются путем конкатенации величин указанных столбцов.

    Для столбцов типов CHAR и VARCHAR с помощью параметра col_name(length) могут создаваться индексы, для которых используется только часть столбца (для столбцов BLOB и TEXT нужно указывать длину). Команда, приведенная ниже, создает индекс, используя первые 10 символов столбца name:

    mysql> CREATE INDEX part_of_name ON customer (name(10));
    

    Поскольку большинство имен обычно имеют отличия друг от друга в первых 10 символах, данный индекс не должен быть намного медленнее, чем созданный из столбца name целиком. Кроме того, используя неполные столбцы для индексов, можно сделать файл индексов намного меньше, а это позволяет сэкономить место на диске и к тому же повысить скорость операций INSERT!

    Следует учитывать, что в версии MySQL 3.23.2 и более поздних для таблиц типа MyISAM можно добавлять индекс только для столбцов, которые могут принимать величины NULL или для столбцов BLOB/TEXT.

    Чтобы получить более подробную информацию о том, как MySQL использует индексы, See Раздел 5.4.3, «Использование индексов в MySQL».

    С помощью опции FULLTEXT можно индексировать только столбцы VARCHAR и TEXT и только в таблицах MyISAM. Эта возможность доступна только в версии MySQL 3.23.23 и выше. See Раздел 6.8, «Полнотекстовый поиск в MySQL».

     
    © 1997-2005 PHP Club Team
    Rambler's Top100