“Conocimientos Programación>Programación PHP /MySQL

MySQL Distinct Tutorial

2011/6/5
MySQL es un sistema de gestión de código abierto base de datos relacional (RDBMS ) . Debido a su bajo costo , las organizaciones están utilizando cada vez más para las bases de datos de gran tamaño. Cuanto mayor sea la base de datos , es más probable una consulta devolverá todas las filas duplicadas , lo que hace difícil de leer salida y la de consultas lentas . Uso de la palabra clave DISTINCT en sus sentencias SELECT puede eliminar estos duplicados en el resultado . ¿Por qué se obtienen resultados duplicados

Por lo general, una consulta no muestra todas las columnas de la tabla o tablas de las que hace referencia . Un empleador puede , por ejemplo, tener una tabla que registra la ausencia de empleados . Si quiere saber qué empleados tenían al menos una ausencia en el último mes , se podría utilizar una consulta que se ve algo como esto: SELECT

employees.first_name , empleados employees.last_nameFROM , absencesWHERE employees.employee_id = absences.employee_idAND absences.date > = ' JUN- 01-09 ' ;

Si Bob Smith estuvo ausente durante tres días en junio, los resultados de la consulta contienen tres filas de Bob Smith. A pesar de que la consulta no muestra la fecha , ya que tres faltas de Bob fueron en fechas diferentes, esta consulta devuelve cada una de las tres filas .
¿Por qué los resultados duplicados son malos
< p> Las filas duplicadas no sólo hacer su salida difícil de leer , sino que también ralentizan la consulta de bases de datos y los recursos de cerdo . A menos que su base de datos es muy pequeña , es probable que desarrolle sus secuencias de comandos SQL en una instancia de base de desarrollo, que es independiente de la instancia de producción. No es nada raro para las instancias de desarrollo a tener muchos menos datos de los que la instancia de producción .

Si usted permite que las filas duplicadas en la salida , que está haciendo su búsqueda de base de datos de todo el camino a través de todo el tablas que has unidos en su consulta. Esto puede hacer una consulta que iba lo suficientemente rápido en la instancia dev lento a paso de tortuga en la producción. Si su base de datos de producción es grande , la consulta puede funcionar durante horas
Uso y Optimización DISTINCT

Los siguientes selección devuelve una fila por Bob Smith : .

employees.first_name SELECT DISTINCT , los empleados employees.last_nameFROM , absencesWHERE employees.employee_id = absences.employee_idAND absences.date ENTRE '2009 - 06-01 'AND '2009 -07- 01' ;

Los resultados son más fáciles de leer, pero el servidor de base de datos todavía tiene que trabajar muy duro si la tabla empleado tiene mucho más filas que la tabla de ausencias. . MySQL pasará por cada registro en la tabla de empleados para ver si ese empleado tiene ausencias

lugar, hacer el trabajo DISTINCT para que usted pueda hacer su consulta más eficaz:

SELECT DISTINCT employees.first_name , empleados employees.last_nameFROM , absencesWHERE absences.employee_id = employees.employee_idAND absences.date > = ' JUN- 01-09 ' ;

Esta consulta se llevará un registro en la tabla de ausencias y dejar de buscar la tabla de empleados una vez que se encuentra el empleado que va con esa ausencia . Su consulta sólo se puede trabajar con tantos búsquedas , ya que hay ausencias , y buscará a través de menos de la tabla de empleados en cada categoría. Utiliza menos recursos de base de datos y se ejecuta mucho más rápido.

Programación PHP /MySQL
Cómo leer los archivos PDF en PHP
Cómo abrir un archivo en PHP
Cómo convertir a UTF8 Latín1 en MySQL
Cómo arreglar mi PHP Rand
Cómo anular la configuración de un elemento de una matriz
Tutorial de PHP Funciones de cadena
Cómo cambiar un tipo de campo en MySQL PHP
Cómo abrir un archivo XML de la caché con PHP
Conocimientos Informáticos © http://www.ordenador.online