Mysql
 sql >> Database >  >> RDS >> Mysql

Comprensione degli impatti sulle prestazioni per la ricerca di tuple MySQL

Secondo questa domanda , il supporto per le tuple in MySQL non è ottimizzato. Come scrive @O.Jones nel suo commento, il pianificatore di query in MySQL è una bestia estremamente complessa e cose che dovrebbero il lavoro non si comporta sempre come ci si potrebbe aspettare.

Credo che la tua seconda query sia più veloce perché la prima clausola where dept_id in (101, 103) riduce lo spazio di ricerca per il secondo che utilizza le tuple. Query Optimizer dovrebbe fallo automaticamente, ma almeno nel tuo esempio non lo fa.

Non credo al IN La clausola è il problema:è il confronto delle tuple che esegue la scansione dell'intera tabella e non utilizza gli indici disponibili.