/ / "Pułapki" polecenia DML Zaktualizuj MySQL

"Pułapki" polecenia DML Zaktualizuj MySQL

Każdy programista, który musiał pracować z bazami danych napotykał operatorów DML (trans. z angielskim. - "język manipulacji danymi"), na przykład Wybierz, Wstaw, Usuń i Uaktualnij. Środowisko MySQL wykorzystuje również wszystkie powyższe polecenia w swoim arsenale.

Operatorzy ci logicznie mówią o swoichprzeznaczenie - wybierz rekordy, wstaw nowe wartości, zaktualizuj istniejące dane, wypełnij lub zgodnie z określonymi warunkami, usuń informacje z bazy danych. Nauczanie materiałów teoretycznych opisuje szczegółowo zasady działania każdego zespołu i ich składni, ale nie ma wzmianki o trudnościach, które mogą pojawić się w praktyce podczas użytkowania. Materiał ten będzie poświęcony rozważaniu niektórych z nich.

Aktualizacja aktualizacji mysql select

Krótko o operatorach DML (Insert)

Przed dalszym postępowaniem konieczne jest ponowne bardziej szczegółowe przypomnienie przeznaczenia każdej z funkcji. Będziemy bardziej zainteresowani dwoma operatorami: Wstaw i Uaktualnij, ponieważ to właśnie z nich wynikają największe trudności przy przetwarzaniu dużych ilości danych.

Aktualizacja mysql insert

Zacznij od polecenia Wstaw, a następnie płynnie przejść do Uaktualnij. MySQL System, podobnie jak każdy inny nowoczesny DBMS, wykorzystuje tę operację Wstaw aby dodać nowe wpisy do istniejącegotabele bazy danych. Składnia tej operacji jest bardzo prosta i bezpośrednia. Zawiera listę pól, które zostaną wprowadzone do wartości, przeznaczenia - nazwa tabeli - i od razu wprowadził listę danych. Przy każdym wykonaniu polecenia Wstaw Baza danych zostanie zaktualizowana o nowe wartości.

Zaktualizuj operatora

Jednak w praktyce dość często powstająSytuacja jest taka, że ​​w przypadku jednego zestawu danych jedna lub więcej wartości atrybutów musi zostać zaktualizowanych. Jako przykład można przytoczyć sytuację, w której przedsiębiorstwo przeszło reformę z dalszą zmianą nazwy głównych departamentów. W takim przypadku konieczne jest wprowadzenie zmian dla każdego działu. Jeśli zmieniają się tylko nazwy, problem rozwiązuje się bardzo szybko. Ale jeśli kodowanie każdego komponentu całej produkcji ulegnie zmianie, co z zasady służy jako klucz podstawowy, to z kolei pociąga za sobą zmiany w informacjach i dla każdego pracownika.

zaktualizuj mysql

Aby rozwiązać problem, o którym mowa, można zastosować Operator DML - Uaktualnij. MySQLserwer, działający z dużą liczbą rekordów,za pomocą operatora aktualizacji spełni on wymagane żądanie i rozwiąże problem. Ale czasami podczas aktualizacji nie są jasne i trudne do wytłumaczenia trudności. Chodzi o to, co złożoność zapisów aktualizacji, zostaną omówione poniżej.

O tym, co mało mówi się w teorii ...

Polecenie aktualizacji, jak wspomniano powyżejsłuży do aktualizacji istniejących wpisów w tabeli. Jednak w praktyce klienci uzyskujący dostęp do serwerów baz danych nie zawsze wiedzą, czy w tabelach jest określony zestaw danych, czy też nie. Wstępna kontrola dostępności danych w bazie danych dla kolejnej aktualizacji prowadzi do czasochłonnych i zmarnowanych funkcji serwera.

Aby temu zapobiec, specjalny projekt jest zapewniony w DBMS. MySQL - Insert * Updatew którym można wstawić insert lub aktualizacjębiegnij niezależnie od siebie. Oznacza to, że jeśli w tabeli pojawi się wpis dotyczący określonego warunku, nastąpi aktualizacja. Jeśli nie zostaną znalezione żadne dane dla danego warunku, serwer MySQL będzie mógł wykonać żądanie dodania danych.

Zaktualizuj dane duplikatami

Ważny składnik tego Wstaw-zapytanie w systemie zarządzania bazą danych MySQL - "On Duplicate Key Update" prefiks. Pełna składnia zapytania jest następująca: "wstaw do wartości test_table (employer_id, name) (1, "Abramov") na duplikacie aktualizacji klucza last_modified = NOW ();".

MySQL na duplikacie aktualizacji kluczy

Takie żądanie może być użyte dlarejestrowanie działań pracowników, na przykład ustalanie czasu przecięcia przejścia przedsiębiorstwa z późniejszym obliczaniem czasu przerwy i wykrywanie opóźnień. Aby nie wprowadzać kilku pozycji do tabeli, wystarczy przechowywać zapisy dla każdego pracownika ze stałą aktualizacją. Jest to zdublowany projekt sprawdzania, który to umożliwia.

Właściwie o problemach ...

Biorąc pod uwagę powyższy przykład dotyczący rejestracji działań pracowników w punkcie kontrolnym, można przytoczyć samostosowanie (auto_inkrementacja) pola, które są zwykle używane do zapełniania wartości kluczy podstawowych (pierwotny_klucz). Podczas korzystania z polecenia Aktualizacja MySQL w budowie z Wstaw auto_przyrost, pola stale się powiększają.

Podobnie wszystko dzieje się, kiedyProjekt wymiany jest stosowany w przypadku wykrycia duplikatów. Wartość "auto-inkrementacji" rośnie nawet wtedy, gdy nie jest to konieczne. Z tego powodu występują problemy z brakującymi wartościami lub przekroczeniem zakresu, co z kolei prowadzi do naruszeń wydajności systemów zarządzania bazami danych.

Największe prawdopodobieństwo problemu

Opisany problem należy wziąć pod uwagę Internet- deweloperzy, ponieważ jest to najczęściej spotykane w systemach wieloużytkownikowych (strony internetowe, portale itp.), gdy w systemie wykonuje się dużą liczbę procedur Wstaw i Zaktualizuj MySQL.

PHP-wywołania do bazy danych wykonywane są bardzo często. Dlatego maksymalna wartość pól zdefiniowanych jako auto_increment, dzieje się to szybko, a analizując trudności, które się pojawiły, niemożliwe jest natychmiastowe ustalenie przyczyn.

 zaktualizuj mysql php

Dlatego zaleca się, aby programiści starannie rozważyli wykorzystanie projektu. na duplikacie klucza w zespole Aktualizacja mysql. wybierz - żądania podczas uzyskiwania dostępu do serwera bazy danychbędą działać bezbłędnie, ale dodawanie nowych wpisów do bazy danych jest obarczone nieprzyjemnymi sytuacjami, które następnie prowadzą do poważnych problemów. Jako alternatywę zaleca się, aby pola automatycznego przyrostu początkowo sprawdzały dla nich rekordy, a następnie je aktualizować.

Czytaj więcej: