Cuando prefijamos una consulta SQL con la palabra clave "explicar" obtenemos una tabla con algunas columnas. Por favor, dígame qué es la columna "tipo". ¿Qué significa eq_ref
y ref
en ese contexto?Qué significan los tipos eq_ref y ref en MySQL explicar
Respuesta
Voy a intentar una explicación ...
eq_ref - imaginar que tiene dos tablas. Tabla A con columnas (id, texto) donde id es una clave principal. Tabla B con las mismas columnas (id, texto) donde id es una clave principal. Tabla A tiene los siguientes datos:
1, Hello
2, How are
Tabla B tiene los siguientes datos:
1, world!
2, you?
Imagínese eq_ref como unión entre A y B:
select A.text, B.text where A.ID = B.ID
Esta unión es muy rápido porque para cada fila escaneada en la tabla A solo puede haber UNA fila en la tabla B que satisface la condición JOIN. Uno y no más de uno. Eso es porque B.id es ÚNICO. Aquí tiene una código seudo que ilustra el procesamiento del lado del servidor:
foreach (rowA in A)
{
if (existsInBRowWithID(rowA.id)
{
addToResult(rowA.text, getRowInBWithID(rowA.id).text);
break;
}
}
ref - Ahora imagina otra tabla C con columnas (id, texto) en la cual Identificación del índice, pero uno no ÚNICA. Tabla C tiene los siguientes datos:
1, John!
1, Jack!
Imagínese ref como unión entre A y C:
select A.text, C.text where A.ID = C.ID
Aquí son un pseudo código que ilustra el procesamiento del lado del servidor:
foreach (rowA in A)
{
foreach (rowC in C)
{
if (rowA.id == rowC.id)
{
addToResult(rowA.text, rowC.text);
}
}
}
Esta JOIN no es tan rápida como la anterior, ya que para cada fila escaneada en la tabla A hay VARIAS posibles filas en la tabla C que pueden satisfacer el JOIN con dition (sin interrupción en el ciclo de arriba). Eso es porque C.ID NO ES ÚNICO.
Espero que ayude ...
Cheerz!
gracias amigo, lo tengo ... esa fue una explicación muy útil ..... –
¡explicación perfecta! – julestruong
El "tipo" hace referencia al tipo de unión realizado en su solicitud. De mejor a peor, aquí está la lista:
- sistema
- const
- eq_ref
- ref
- gama
- índice
- todo
Encontrará una explicación más detallada en MySQL d OCUMENTACIÓN: http://dev.mysql.com/doc/refman/5.0/en/explain-output.html
sí, gracias, pero no estoy buscando eso ... he entendido qué sistema y const significan en ese tipo ... pero ¿qué significa eq_ref y ref? He leído la explicación en la documentación de mysql pero no pude entenderlo ... –
- 1. tipos de ventana de Chrome. ¿Qué significan?
- 2. ¿Qué significan los indicadores de columna en MySQL Workbench?
- 3. tipos de clase Java - ¿Qué significan?
- 4. ¿Qué significan ref, val and out en los parámetros del método?
- 5. ¿Puede alguien explicar por qué significan estos resultados de ApacheBench?
- 6. ¿Qué significan? == y === en PHP?
- 7. Qué significan los iconos de la columna mysql workbench
- 8. ¿Por qué los delegados/lambdas anónimos no infieren los tipos en los parámetros out/ref?
- 9. Qué significan ... y * en aspectj
- 10. Comando mySQL ¿Explicar ignorar LIMIT?
- 11. ¿Qué significan __STDC_LIMIT_MACROS y __STDC_CONSTANT_MACROS?
- 12. ¿Qué significan los diferentes corchetes en Ruby?
- 13. ¿Qué significan los diversos colores en LogCat?
- 14. ¿Qué significan los símbolos de los archivos $ @ y $ <?
- 15. ¿Qué significan los iconos en Eclipse?
- 16. ¿Qué significan los __ en este contexto?
- 17. ¿qué significan los términos formBackingObject y ModelAttribute en Spring MVC?
- 18. ¿Qué significan los símbolos de puntos y hash en JQuery?
- 19. ¿Qué significan los corchetes en x86 asm?
- 20. ¿Qué significan los símbolos en preg_match?
- 21. ¿Qué significan \ r y \ n en PHP?
- 22. ¿Qué significan los corchetes en la consulta Oracle SQL?
- 23. ¿Qué significan los modos de fusión en pygame?
- 24. En makefiles, ¿qué significan CC y LD?
- 25. ¿Qué significan los puntos en esta consulta SQL?
- 26. ¿Qué significan los colores FireBug DOM?
- 27. ¿Qué significan los parámetros para CGPathAddCurveToPoint?
- 28. tipos de palabras clave y de referencia "REF"
- 29. ¿Qué significan los términos "CPU bound" y "E/S bound"?
- 30. ¿Qué significan los campos de Ruby's GC.stat?
¡Dé un ejemplo! – Tobias