![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 19.05.2010 Ostrzeżenie: (0%)
|
Witam,
Przeglądałem dzisiaj logi na stronie i zauważyłem, że jeden z użytkowników posiada zdublowane konto, które różni się tylko numerem ID (pole autoincrement dla Primary Key). Oba konta zostały założone w tej samej sekundzie, więc musiało być chyba podwójne kliknięcie zatwierdzające form rejestracyjny. Kod rejestracji nowego usera wygląda tak, że sprawdzam, czy w bazie nie istnieje już user z podanym nickiem lub emailem i jeśli nie, to odpalam transakcję (kilka insertów do tabel). Każda domyślna transakcja ma ustawione READ COMITTED, więc mogło się zdarzyć tak, że drugi proces był w trakcie sprawdzania nicka i emaila zanim pierszy proces nie zamknął transakcji. Najprostszym rozwiązaniem byłoby chyba ustawić READ UNCOMITTED, ale mnie interesuje tutaj inne rozwiązanie - czy da się ustawić serwer mysql w ten sposób, aby wszystkie transakcje były wykonywane jednowątkowo i kolejkowane jeśli będzie taka potrzeba ? Pozdrawiam Piotrek |
|
|
|
![]() ![]() |
|
Aktualny czas: 19.12.2025 - 18:15 |