"Podvodné kamene" DML aktualizačný tím pre MySQL

Každý programátor, ktorý musel pracovať s databázami, narazil na operátorov DML (jazyk manipulácie s údajmi), ako napríklad Vybrať, Vložiť, Odstrániť a Aktualizovať. MySQL prostredie tiež používa všetky vyššie uvedené príkazy vo svojom arzenálu. Títo operátori logicky hovoria o mieste určenia - výber záznamov, vloženie nových hodnôt, aktualizácia existujúcich údajov, úplné alebo podľa zadaných podmienok odstránenie informácií v databáze. V tréningových teoretických materiáloch sa podrobne opisuje princíp práce každého pracovníka a jeho syntax, ale nenájdete nijaké zmienky o ťažkostiach, ktoré sa môžu vyskytnúť v praxi pri používaní. Tento materiál bude venovaný úvahám o niektorých z nich.


Stručne o operátoroch DML (Vložiť)

Predtým, než sa pokúsi pokračovať ďalej, je potrebné podrobnejšie spomenúť účel účelu každej funkcie. Budeme sa viac zaujímať o dvoch operátorov: Vložiť a Aktualizovať, pretože to sú hlavné ťažkosti pri spracovaní veľkých objemov dát.
Začnite príkazom Vložiť a potom prejdite hladko na položku Aktualizovať. MySQL, rovnako ako všetky ostatné moderné DBMS, používa funkciu Vložiť na pridanie nových položiek do existujúcich databázových tabuliek. Syntax operácie je veľmi jednoduchý a zrozumiteľný. Obsahuje zoznam polí, kde bude zadaná hodnota, cieľ - názov tabuľky - a priamo zadaný zoznam údajov. Pri každom spustení príkazu Vložiť bude databázadoplnené novými hodnotami.


Aktualizácia operátora

V praxi sa však často vyskytujú situácie, že niektoré dáta musia byť aktualizované na jednu alebo viac hodnôt atribútov. Ako príklad možno uviesť situáciu, keď spoločnosť prechádza reformáciou s následným premenovaním hlavných oddelení. V tomto prípade je potrebné vykonať zmeny pre každé oddelenie. Ak sa menia iba mená, problém sa vyrieši veľmi rýchlo. Ale ak sa zmení kódovanie každej zložky celej produkcie, ktorá zvyčajne slúži ako primárny kľúč, potom to spôsobí zmeny v informáciách a na každom zamestnancovi.
Na vyriešenie tohto problému môže byť použitá aktualizácia operátora DML. MySQL je server, ktorý pracuje s veľkým počtom záznamov, pomocou operátora aktualizácie vykoná požadovaný dopyt a vyrieši problém. Ale niekedy počas inovácie nie sú úplne zrozumiteľné a ťažko zrozumiteľné zložitosti. Ide o problém s aktualizáciou záznamov, jazyk bude pokračovať.

Čo hovorí v teórii

Príkaz Aktualizácia, ako je uvedené vyššie, sa používa na aktualizáciu existujúcich položiek v tabuľke. V praxi však klienti, ktorí pristupujú k databázovým serverom, nie vždy vedia, či v tabuľkách existuje špecifická množina údajov alebo nie. Predbežná kontrola dostupnosti údajov v databáze pre ďalšie osvieženie vedie k časovým nákladom a plytvaniu serverových funkcií. Aby sa tomu zabránilo, DBMS má špeciálny dizajn MySQL - Insert * Update v roku 2006ktoré sa môžu vložiť alebo aktualizovať nezávisle od seba. To znamená, že ak je v tabuľke zaznamenaná určitá podmienka, dôjde k aktualizácii. Ak sa údaje za túto podmienku nenašli, server MySQL bude môcť dokončiť požiadavku na údaje.

Aktualizácia prítomnosť duplicitných

Dôležitou súčasťou tohto príbalového letáku - požiadavky na systém pre správu databáz MySQL - «Na Duplicitné Key Update» konzoly. Plná syntax dotazu je nasledujúci: «vložiť do test_table (employer_id, názov) hodnoty (1'Abramov,) na duplikátu kľúče aktualizáciu LAST_MODIFIED = NOW (); ".
Táto požiadavka môže byť použitý pre záznam činnosti zamestnancov, ako je okamihu prekročenia priechodná podniky, nasleduje počítanie časového intervalu a oneskorenie detekcie. Ak chcete viac položiek v tabuľke, dosť pre každého zamestnanca viesť záznamy o pravidelných aktualizácií. Je to návrh duplicitnej kontroly, ktorá vám to umožňuje.

V skutočnosti sú problémy

Vzhľadom na vyššie uvedený príklad registračných akcie zamestnancov pri vchode, ako tento problém môže byť znížená pomocou samouvelychyvayuschyhsya (auto _ prírastok) pole, ktoré sa bežne používajú na vyplnenie hodnotu primárneho kľúča (primárny _ kľúč). Pri použití príkazu Aktualizácia MySQL v konštrukcii s prírastkom Vložiť auto_ sa polia neustále zvyšujú. Podobne sa všetko stane, keď sa použije náhradný dizajn, ak sú zistené duplikáty. Hodnota automatického prírastku sa zvyšuje aj vtedy, keď ju nepotrebujete. Z tohto dôvodu existujú problémy s preukazomhodnoty alebo pretečeniu rozsahu, čo v budúcnosti vedie k narušeniu výkonnosti systémov správy databáz.

S najväčšou pravdepodobnosťou je problém

popísal problém treba považovať -rozrobnykiv Web, ako to je najčastejší v multi-užívateľských systémov (webové stránky, portály, atď), keď je systém vykonávanie veľkého počtu postupov Insert a aktualizácie MySQL.
Prístup k databázam PHP-sa vykonáva veľmi často. Preto je dosiahnutie maximálnych hodnôt polí spôsobených auto_incrementom rýchlo a pri analýze ťažkostí nie je možné ihneď určiť príčiny.
Preto sa odporúča, aby vývojári pozorne pristupovali k použitiu duplicitného dizajnu kľúčov v príkaze aktualizácie mysql. vyberte - žiadosti, keď prístup k databázovému serveru bude fungovať bez chýb, ale pridanie nových položiek do databázy je ohrozené nepríjemnými situáciami, ďalej vedie k vážnym problémom. Ako alternatívu sa odporúča, aby pole automatického inkrementovania najskôr skontrolovali dostupnosť záznamov a potom ich aktualizovali.

Súvisiace publikácie