MySQL может создавать индексы по
нескольким столбцам. Индекс может
включать в себя до 15 столбцов (на
столбцах CHAR и
VARCHAR можно также
использовать префикс столбца в
качестве части индекса)
Многостолбцовый индекс может рассматриваться как упорядоченный массив, содержащий величины, созданные конкатенацией величин проиндексированных столбцов.
MySQL использует многостолбцовые
индексы таким образом, что запросы
выполняются быстро, когда
указывается известная часть для
первого столбца в индексе в
выражении WHERE, даже если
не заданы величины для других
столбцов.
Предположим, создается следующая таблица:
mysql>CREATE TABLE test (->id INT NOT NULL,->last_name CHAR(30) NOT NULL,->first_name CHAR(30) NOT NULL,->PRIMARY KEY (id),->INDEX name (last_name,first_name));
Индекс name является
индексом по столбцам
last_name и first_name.
Этот индекс будет применяться для
запросов, указывающих величины в
известной области для
last_name или для обоих
столбцов last_name и
first_name. Таким образом,
индекс name будет
использоваться в следующих
запросах:
mysql>SELECT * FROM test WHERE last_name="Widenius";mysql>SELECT * FROM test WHERE last_name="Widenius"->AND first_name="Michael";mysql>SELECT * FROM test WHERE last_name="Widenius"->AND (first_name="Michael" OR first_name="Monty");mysql>SELECT * FROM test WHERE last_name="Widenius"->AND first_name >="M" AND first_name < "N";
Чтобы получить более подробную информацию о том, как в MySQL используются индексы для улучшения работы запросов, See Раздел 5.4.3, «Использование индексов в MySQL».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
