Привет всем
У меня есть пользовательский запрос в dripal, этот запрос:
select count(distinct B.src)
from node A, url_alias B
where concat('node/',A.nid)= B.src;
сейчас, nid в узле является первичным ключом, и я сделал src индексом в таблице url_alias.после ожидания более минуты я получил это:
+-----------------------+
| count(distinct B.src) |
+-----------------------+
| 325715 |
+-----------------------+
1 row in set (1 min 24.37 sec)
, отметив «объяснить», я получил это:
******************* 1. row ***************************
id: 1
select_type: SIMPLE
table: A
type: index
possible_keys: NULL
key: PRIMARY
key_len: 4
ref: NULL
rows: 325716
Extra: Using index
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: B
type: ALL
possible_keys: src_language_pid,src
key: NULL
key_len: NULL
ref: NULL
rows: 325928
Extra: Range checked for each record (index map: 0xC)
2 rows in set (0.00 sec)
теперь мой вопрос: почему этот запрос не использовалиндекс src, а как его оптимизировать ??
Спасибо за вашу помощь