Reptile ReX
21.01.2011, 14:47:24
Załóżmy że mamy skrypt który dodaje wpisane Imię do bazy, a jeżeli to imię już istnieje to go wyświetla (nie dodaje ponownie)
I Hmm zastanawia mnie jedno, gdy załóżmy 50 osób w tej samej sekundzie wyśle to samo zapytanie do bazy danych.
Czy nic się nie wysypie.. ?
Czy nie powielą się rekordy?
Swojego czasu w pewnej książce czytałem o podobnej sytuacji i była tam pewna funkcja, która kolejkowała zdarzenia.
Ale nie mogę tego znaleźć już wertuję 6x raz książkę.
thek
21.01.2011, 15:50:41
Może chodzi o blokowanie tabeli poprzez transakcje? Tylko po co w takim prostym przypadku. Prościej założyć klucz UNIQUE na imieniu i użyć INSERT ... ON DUPLICATE KEY IGNORE

Tudzież INSERT IGNORE. Tak więc kwestia rozwiązania jest zależna od skomplikowania problemu.
kalmaceta
21.01.2011, 16:27:33
jak thek wyżej pisał + 50 zapytań/sek. przy takim prostym zapytaniu nie ma znaczenia, zawsze któreś było pierwsze i w tej kolejności są obsługiwane, problem pojawia się przy bardzo skomplikowanych zapytaniach i wysokim limicie jednoczesnych połączeń do bazy, wtedy można trafić co najwyżej na timeout serwera WWW, php ale baza jak baza działa dalej