MySQL is een open source relationele database management systeem ( RDBMS ) . Vanwege de lage kosten , zijn organisaties steeds vaker gebruik van het voor grote databases . Hoe groter de database, hoe waarschijnlijker zoekopdracht veel dubbele rijen terug , waardoor productie moeilijk te lezen en de query traag . Met behulp van het sleutelwoord DISTINCT in uw SELECT-instructies kunnen deze duplicaten elimineren in je output . Waarom krijg je Duplicate Resultaten Meestal doet een query niet alle kolommen in de tabel of tabellen deze verwijzingen weer te geven . Een werkgever kan , bijvoorbeeld , hebben een tabel die werknemer afwezigheden tracks . Als hij wil weten welke medewerkers ten minste een afwezigheid had in de afgelopen maand , zou hij een query die er ongeveer zo uitziet gebruiken : SELECT employees.first_name , employees.last_nameFROM werknemers , absencesWHERE employees.employee_id = absences.employee_idAND absences.date > = ' JUN -01- 09' ; Als Bob Smith afwezig was voor drie dagen in juni , zal de query resultaten drie rijen van Bob Smith bevatten . Hoewel de query niet wordt weergegeven de datum , omdat Bob 's drie afwezigheden waren op verschillende data , deze query elk van de drie rijen . Waarom Duplicate Resultaten zijn slecht dubbele rijen niet alleen uw output moeilijk leesbaar te maken , ze ook vertragen uw vraag en hog middelen database. Tenzij uw database is erg klein , je waarschijnlijk het ontwikkelen van uw SQL- scripts in een database ontwikkeling instantie die losstaat van uw productie exemplaar . Het is helemaal niet ongewoon voor de ontwikkeling gevallen om veel minder gegevens in hen dan de productie exemplaar hebben . Als u dubbele rijen in uw uitvoer toe te staan, bent u het maken van uw database- zoekopdracht helemaal door alle tabellen die u hebt samengevoegd in uw zoekopdracht. Dit kan een query die snel genoeg is langzaam als een slak in productie liep in uw dev instantie te maken . Als uw productie -database is groot , kan uw query uit te voeren voor de uren gebruiken en optimaliseren DISTINCT De volgende select rendementen een rij voor Bob Smith : . < br SELECT DISTINCT employees.first_name > , employees.last_nameFROM werknemers , absencesWHERE employees.employee_id = absences.employee_idAND absences.date TUSSEN '2009 -06- 01 ' AND '2009 -07- 01' ; uw resultaten zijn gemakkelijker te lezen , maar uw databaseserver heeft nog steeds te hard werken als uw werknemer tafel heeft veel meer rijen dan uw afwezigheden tafel . . MySQL zal plaats gaan door elke record in uw medewerkers tafel om te zien of die werknemer heeft geen afwezigheden , maken DISTINCT werk voor u uw zoekopdracht efficiënter te maken : SELECT DISTINCT employees.first_name , employees.last_nameFROM werknemers , absencesWHERE absences.employee_id = employees.employee_idAND absences.date > = ' JUN -01- 09' ; Deze query zal een record te nemen in de tabel afwezigheden en stoppen met zoeken de werknemer tafel zodra het vindt de werknemer die gaat met die afwezigheid . Uw vraag zal alleen draaien als zoveel zoekopdrachten als er afwezigheden , en doorzoekt veel minder van de werknemer tabel op elke zoekopdracht . Het gebruikt minder databank middelen en loopt veel sneller .
|