Интересные материалы Sun Tech Days MySQL. Много полезного. Например, результаты простого применения функции к индексированному столбцу (что показывает explain):
для столбца title есть индекс
mysql> EXPLAIN SELECT * FROM film WHERE title LIKE 'Tr%'
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: film
type: range
possible_keys: idx_title
key: idx_title
key_len: 767
ref: NULL
rows: 15
Extra: Using where
здесь таблица сканируется с учетом индекса (type: range). А теперь тот же запрос, но над индексированным столбцом вычисляется функция в условии Where:
mysql> EXPLAIN SELECT * FROM film WHERE LEFT(title,2) = 'Tr'
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: film
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 951
Extra: Using where
в этом случае выполняется уже полное сканирование таблицы!
No comments:
Post a Comment