Abro este post para que entre todos vayamos recopilando ideas para optimizar las consultas a bases de datos.
Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
| |||
Re: Agilizar consultas Muy interesante la idea, a ver quien se anima a comparar modos de hacer consultas y explicar cuales son las más rápidas. <center><a href="http://www.folosoft.com"><img src="http://www.folosoft.com/images/banner.gif" border="0"></a></center> |
| ||||
Re: Agilizar consultas Bueno, hay que tener en cuenta que medir la performance de un query o consultas, no solo es algo muy complicado, sino que es parte de toda una carrera casi, que es ser DBA. De todas maneras, siempre tengo en mente, el hacer la menor cantidad de consultas posibles, y si tengo, como sana costumbre, colocar índices para los campos que se serán los que utilizaré para encontrar información en mi base de datos. Espero que les sirva como idea. Saludos. <hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio) <font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo |
| |||
Re: Agilizar consultas Ajustar los tipos de los campos que usemos al maximo ayuda a tener una BD menos pesada para realizar nuestras consultas .. Me refiero a lo de siempre.. si tenemos un valor que sabemos que es un entero de no mas de 5 digitos .. no dejemos por defecto lo que suele colocar algunos administradores/gestores de BD como por ejemplo para Mysql PHPmyadmin . que lo deja a 11 digitos (si mal no recuerdo) ... Debemos estudiar el tipo de dato que vamos a tratar para llegar a la conclusion de que "tipo" de dato de nuestra BD es el mas recomendable. Lo de usar indices es necesario. De nada sirve por ejemplo .. un campo tipico ID .. como indice .. si luego hacemos consultas sobre otro campo de la Tabla .. ejemplo . .. pogamos "nombre" ... para acceder a ese registro. En tal caso habria que evaluar si la mayoria de casos hacemos consultas sobre el campo "nombre" (en el ejemplo) .. o sobre su "ID" para cambiar si fuera necesario el Indice a otro campo. Un saludo, |
| ||||
Re: Agilizar consultas ¿Entonces, si tengo una tabla donde lo que más consulto son los nombres, debo fijar nombres como índice y me irá más rápido que si tengo un id autonumérico de indice? ¿Aunque el campo de nombre sea un varchar de 255 carácteres? Joe Tawers, <a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a> |
| ||||
Re: Agilizar consultas Otra cosa, ¿es cierto que marcar los campos obligatorios como NOT NULL agiliza la consulta? Joe Tawers, <a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a> |
| |||
Re: Agilizar consultas Un indice no tiene nada que ver con el tamaño del dato almacenado .. El indice es eso mismo, Mysql (o cualquier motor de BD) añade informacion extra de la posicion (registro) que ocupa en relacion a la BD/tabla ... (si me equivoco me corrigen) Puedes hacer una prueba .. mide el tiempo de respuesta de tus consultas .. poniendo como indice el "ID" o el "nombre" y haciendo consultas por "nombre" (WHERE nombre='tal') .. El tiempo de respuesta lo puedes ver asi: <? $tiempo_inicio=microtime(); //tu consulta/codigo aqui $tiempo_fin=microtime(); $tiempo_proceso=$tiempo_fin-$tiempo_inicio; echo "Tiempo de ejecucion: ".$tiempo_proceso; ?> Haz la prueba y nos comentas que tal fueron los resultado. Un saludo, |
| |||
Re: Agilizar consultas En el manual oficial de MySQL en especifico en el capitulo 7, te dejo la liga a esa seccion del manual. <a href='ir.asp?http://www.mysql.com/doc/T/a/Table_types.html' target='_blank'>http://www.mysql.com/doc/T/a/Table_types...</a> Saludos!. Mty. NL. |