2010-07-20 5 views
1

У меня есть таблица, которая индексируется в первых двух столбцах. Столбец A называется «directory», а столбец B называется «name».MySQL SELECT Statement против индекса

Есть ли короткий синтаксис для моего оператора select, который я могу использовать для возврата правильной строки?

Пример:

Могу ли я

SELECT * FROM table WHERE indexname = '/dir/sub-dir/page.html' 

или я должен

SELECT * FROM table WHERE directory = '/dir/sub-dir/' AND name = 'page.html' 

Если я могу использовать первый пример, что же ИНЕКЕ выглядеть? Спасибо.

ответ

1

Если у вас есть указатель, определенный для обоих столбцов, второе использование является правильным. В SQL вы можете определять предикаты только для столбцов в таблицах, представлениях или таблично-ориентированных пользовательских функциях (которые, как я думаю, MySQL пока не существует). Вы не можете выбрать индекс, но оптимизатор будет знать, использовать соответствующий индекс, когда вы включаете оба столбца.

+0

Спасибо Дэйв за быстрый ответ, подтверждение и объяснение. Помогает. –