Primera parte Cita: Es decir, que usar el símbolo = en lugar de LIKE consume menos recursos. ¿Y cuando use Match Against también uso el igual? Es que como has mencionado lo de la proximidad.
Te respondo yo,
si a la primara parte y
no a la segunda
Del manual de mysql...
Código pre:
Ver originalmysql> SELECT id, body, MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root'
-> IN NATURAL LANGUAGE MODE) AS score
-> FROM articles WHERE MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root'
-> IN NATURAL LANGUAGE MODE);
+----+-------------------------------------+-----------------+
| id | body | score |
+----+-------------------------------------+-----------------+
| 4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |
| 6 | When configured properly, MySQL ... | 1.3114095926285 |
+----+-------------------------------------+-----------------+
2 rows in set (0.00 sec)
No suelo usar ese tipo de indices pero donde vas a poner el igual o el like....
Segunda parte
Si era exactamente esa mi pregunta, y fijate que era una información que aún no habías dado.
De entrada usaria un condicional para convertir las categorias a algo ordenable
Por ejemplo
nuevo=1
semi-nuevos=2
viejos=3
raros=4
if(coche="nuevo",1,if(coche="semi-nuevos",2,if(coche="viejo",3,4))) as antiguedad
Luego podriamos hacer lo siguiente
id_coche---------------antiguedad
BMW4-------------------1
Audi 5-----------------2
Mercedes 3---------------3
Opel 4-------------------1
ya tendriamos algo.... con tus datos de ejemplo esta claro que obtenemos el audi 5/semi-uevos/120
pero y si hay mas de un Audi 5/semi-uevos luego quieres el mas rápido?
Ahora deberias explicar como se entiende esto
Si del primer select salen cien registros no obtendrás ninguno del segundo....