El OR
la palabra clave vuelve loco al optimizador de MySQL.
Podrías intentar algo como esto.
SELECT name FROM table WHERE lang_index='en' AND name LIKE 'myname%'
UNION
SELECT name FROM table WHERE lang_index='en' AND enam LIKE 'myname%'
O podría considerar la búsqueda de TEXTO COMPLETO. Requiere MyISAM o una versión de MySQL 5.6 o posterior.
EDITAR *Es difícil saber exactamente qué está pasando con estas cosas de optimización. ¿Puedes probar esto? Esto verá si la selección de idioma te está confundiendo.
SELECT name
FROM table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%')
¿Puedes probar esto?
SELECT name FROM table WHERE lang_index='en' AND name LIKE 'myname%'
UNION ALL
SELECT name FROM table WHERE lang_index='en' AND enam LIKE 'myname%'
No dará un resultado perfecto, tendrá elementos de nombre duplicados, pero omitirá un DISTINCT
paso de deduplicación en su consulta.
También puedes probar esto.
SELECT name
FROM table
WHERE lang_index='en'
AND id IN (
SELECT id from table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%'))