![]() |
Ayuda acerca de MySQL Hola a todos antes que nada, les escribo para ver si alguien puede explicarme un problemilla que tengo. Para empezar hice una pagina en PHP con MySQL para la busqueda de revistas electronicas, bueno pues ha surgido un problema en el servidor donde las tengo alhojadas, me dice el administrador del servidor que cuando se ejecuta una consulta esta consumiendo una cantidad de memoria muy grande al momento de generar la consulta y me ha dijo lo siguiente: "Tu problema debe estar cuando relacionas tus tablas en las consulta SQL" Segun lo que me explico es que cuando yo hago esto: SELECT campo1,campo2,campon FROM journals,proveedores WHERE journals.id=proveedores.id AND campo1="loquesea" ORDER BY campo1; Lo que aparece en Negrita segun lo que me explico se genera un producto cartesiano, esto es: en la tabla de journals tengo 18 mil registros y en proveedores 20 mil registros, entonces el producto cartesiano que el me explico es que primero se genera algo con los 18000 x 20000 registros y luego se selecciona lo que pedi siempre y cuando los id sean iguales. Esto para mi se me hizo un poco ilogico, no se si asi trabaje MySQL o la mayoria de los manejadores de Bases de Datos cuando se hacen este tipo de consultas con SQL. Pudiera alguien explicarme lo que me dijeron y que me afirme que eso es cierto y si eso es cierto pues ayudenme dando una solucion de como optimizar y no cargar mucho al servidor. De ante mano muchas gracias a todos y espero su ayuda ..... :pensando: |
No estoy seguro de que eso en particular sea la causa, pero claro, todo depende del gestor en concreto, en como resuelva ese cruce. Yo tengo más experiencia con el Informix, y te puedo decir que ahí no es como te dicen, sino que da igual que la condición de cruce la pongas en el from que en el where. Por si quieres probarlo, puedes ponerlo así: Código: SELECT campo1,campo2,campon Un saludo. |
Muchas gracias Vice por tu respuesta creo que ya voy abriendo un poco mas el panorama. Yo estuve investigando y me parece que el INNER JOIN y el Producto Cartesiano son diferentes, bueno al menos eso lei en un articulo, pero si hay alguien que pueda decirme si una consulta que me devuelve alrededor de 1000 registros puede cargar mucho a un servidor si mis 2 tablas de mi base de datos son de 18 mil y 20 mil registros respectivamente?. Gracias y espero que me sigan ayudando |
| La zona horaria es GMT -6. Ahora son las 05:17. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.