sql >> Base de Datos >  >> RDS >> Mysql

Aclaración del orden de unión para la creación de tablas temporales

  1. Se refiere al orden en que el optimizador los evalúa (unirse a la cola). Es posible que el optimizador ni siquiera sepa el orden de las tablas en su declaración sql.

  2. No, no contradice lo escrito en el #3, ya que la respuesta escribe explícitamente (el énfasis es mío):

El resultado y el rendimiento son dos cosas diferentes. En realidad, hay un comentario votado a favor de la respuesta que dice que

  1. Puede decirle al optimizador qué tabla procesar primero usando straight_join :

Sin embargo, debe tener cuidado con eso porque ata la mano del optimizador. Consulte este SO tema sobre la discusión de las ventajas y desventajas de straight_join.

Número de registros, criterios, índices:todos juegan su papel en la decisión del optimizador sobre el orden de procesamiento de las tablas. No existe una varita mágica, necesitas jugar un poco y probablemente puedas engañar al optimizador para cambiar el orden de las mesas.