Vectores o matrices ... (perdón por lo extenso)
Ricardo Mun~oz A.
rmunoz en pjud.cl
Jue Nov 9 14:43:02 CLST 2006
Rodrigo Fuentealba wrote:
[...]
> Ahora, un error:
>
> Cito:
>
> "a que se refiere con join, tienes tabla 1 con el rut del alumno y en
> la segunda tabla tambien tienes el rut del alumno creo yo, entonces
> tienes que hacer una consulta mas menos asi. select <campos> from
> tabla1,tabla2 where tabla1.rut = tabla2.rut"
>
> Eso no es usar joins, eso es hacer una consulta común y silvestre a
> dos tablas de la base de datos, y normalmente lo haces con alias.
lo de mas arriba si corresponde a un join, especificamente a un inner join.
solo que esa sintaxis no es estandar, ver explicacion aca:
http://en.wikipedia.org/wiki/Join_(SQL)#Inner_join
[...]
> En mi tiempo trabajando con bases de datos, he visto malas formas de
> trabajar, pésimas formas de trabajar y el uso indiscriminado de joins,
> debido a que utilizas mucha memoria y los mismos algoritmos que usas
> sobre datos comunes y corrientes bien indexados... pero sobre
> cantidades de código más grande. Consideren siempre antes de
> planificar una consulta compleja el cómo van a consumir menor cantidad
> de memoria.
>
> ¿Para qué sirve un join? si no tienes un buen método de optimización
> de consultas, solamente para llenar la memoria de datos.
tienes algun ejemplo completo (usando EXPLAIN) para demostrar tu afirmacion?
> Ahora, ¿tablescanning? (recorrer N registros por query, siendo que no
> todos los vas a usar) Se evita con índices, gracias y buenas noches!
(y obviamente el planificador de consultas al procesar un join hace uso
de esos indices...)
parece que te faltan horas de suen~o!
obs. toma en cuenta que por cada nueva consulta dentro de un ciclo se
gasta tiempo en:
verificar los privilegios del usuario, procesar la consulta
(planificador), ejecutar la consulta
y entregar los resultados. con pocos datos y pocos usuarios puede que no
se note, pero
cuando tienes muchos datos (millones de registros) y muchos usuarios
concurrentes (cientos
o miles), la diferencia si se nota...
--
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)
Más información sobre la lista de distribución PHP