Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

MySQL Výrazné Tutorial

MySQL je open source relačný databázový systém ( RDBMS ) . Vzhľadom k jeho nízke náklady , organizácie sú čoraz viac používať ho pre veľké databázy . Čím väčšia je databáza , tým väčšia je pravdepodobnosť dotaz vráti mnoho duplicitné riadky , takže výstup ťažké čítať a otázka pomalé . Použitie kľúčové slovo DISTINCT vo svojich príkazoch SELECT môžete odstrániť tieto duplicitné vo výstupe . Prečo by ste získať duplicitné výsledky

Obvykle dotaz nezobrazuje všetky stĺpce v tabuľke alebo tabuľky sa odkazuje . Zamestnávateľ môže , napríklad , mať tabuľku , ktorá sleduje zamestnancov absencia . Ak chce zistiť , ktorí zamestnanci mali aspoň jednu absenciu v poslednom mesiaci , môže sa použiť dotaz , ktorý vyzerá podobne ako toto :

SELECT employees.first_name , zamestnanci employees.last_nameFROM , absencesWHERE employees.employee_id = absences.employee_idAND absences.date > = ' Jun - 01 - 09 ' ,

Bob Smith bol prítomný na tri dni v júni , budú výsledky dotazu obsahuje tri riadky Bob Smith . Aj keď dotaz nezobrazuje dátum , pretože Bob je tri absencia boli v rôznych termínoch , vráti tento dotaz každom z troch riadkov .
Prečo duplicitné výsledky sú zlé

Duplicitné riadky , aby váš výstup ťažké čítať nielen, ale aj spomaliť váš dotaz a prasa databázových zdrojov . Ak nie je vaša databáza je veľmi malé , pravdepodobne vytvoriť SQL skripty v prípade vývoj databázy , ktorá je oddelená od výroby inštancie . To nie je vôbec neobvyklé prípady rozvoja , ktoré majú ďaleko menej dát v nich , ako napríklad výroby .

Ak chcete povoliť duplicitné riadky vo vašom výstupe , robíš vyhľadávanie databázy celá cesta cez všetky stoly ste sa spojili v dotaze . To môže urobiť dotaz , ktorý bežal dosť rýchlo , v dev napríklad pomalé na prechádzanie vo výrobe . Ak váš produkcia databázy je veľký , váš dotaz môže bežať niekoľko hodín
Použitie a optimalizácia DISTINCT

nasledujúce SELECT vráti jeden riadok pre Bob Smith : .

SELECT DISTINCT employees.first_name , zamestnanci employees.last_nameFROM , absencesWHERE employees.employee_id = absences.employee_idAND absences.date MEDZI '2009 - 06 - 01 ' a '2009 - 07 - 01 ;

vaše výsledky sú ľahšie čítať , ale váš databázový server musí ešte pracovať príliš ťažké , ak váš stôl zamestnanec má oveľa viac riadkov , ako vašej absencia tabuľky . MySQL bude prejsť každý záznam v tabuľke zamestnancov a uvidíte , či zamestnanec má nejaké voľno

Miesto , aby DISTINCT pracovať pre vás , aby váš dotaz efektívnejší : .

SELECT DISTINCT employees.first_name zamestnanci employees.last_nameFROM , absencesWHERE absences.employee_id = employees.employee_idAND absences.date > = ' Jun - 01 - 09 ' ,

Tento dotaz bude záznam v tabuľke absencií a prestať hľadať tabuľku zamestnancov akonáhle zistí , že zamestnanec , ktorý ide s touto neprítomnosti . Vaša otázka bude prebiehať iba toľko hľadá , ako tam sú absencia a bude prehľadávať oveľa menej tabuľky zamestnancov na každom hľadanie . Využíva menej databázové zdroje a beží oveľa rýchlejšie .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené