Cita: En el caso de tener mas códigos, por ejemplo, 8,9,10,11,12 y 13. Debería usar el mismo web codigo in (8,9,10,11,12,13) o es mejor usar WHERE codigo=8 OR codigo=9...?
El comportamiento del IN varía de acuerdo al DBMS. En MySQL es más eficiente IN() que hacer la comparación con OR, en especial si el campo está indexado.
Si lo hicieras en Oracle podrías terminar saliendo por timeout.
En cualquier caso tienes que recordar que toda consulta con ORDER BY y/o GROUP BY resulta poco eficiente cuando se trata de centenares de miles o millones de registros. En ese caso es mejor realizar, si se puede, algún JOIN con otra tabla que permita reducir el numero de resultados a filtrar.
Te recomiendo estudiar el uso de EXPLAIN para analizar la performance de las consultas.