Tranzacții, pachete de 300-500-1000, trebuie să selectați cea mai bună valoare prin bust, celălalt ca și cum nimic nu a venit încă. Și ce actualizări pentru 200k durează o oră? O cerere normală este executată în 0.001 secunde, 1000 secunde vor trece, apoi la 60k ai nevoie de un minut de timp. 150k pentru maximum 3 minute. Este posibil ca ceva să nu fie în regulă cu baza de date, să verificați viteza actualizării, să explicați, să vedeți ce indexuri trebuie să adăugați.
Fac acest lucru dacă trebuie să actualizez foarte mult:
* Mai întâi vom crea o tabelă temporară cu două câmpuri: Id, echilibru. tipul de tabel și tipul de câmpuri sunt aceleași ca în "utilizatori";
* îmbinarea datelor într-un fișier csv temporar;
* Apoi faceți "încărcarea datelor de tip local" din fișierul csv în tabelul temporar;
* actualizați apoi tabela destinație: "actualizați utilizatorii internă join users_update_tmp pe users.id = users_update_tmp.id set users.balance = users_update_tmp.balance";
* Apoi, ștergeți masa temporară;
* ștergeți fișierul temporar.
Nu uitați să atârnați cheia de pe câmpul ID din tabelul temporar, astfel încât funcția de îmbinare din comanda de actualizare să funcționeze eficient.
Câteva milioane de trupuri digeră o astfel de schemă cu ușurință. Partea cea mai grea este să îmbinați datele într-un fișier CSV.
Acum avem o masă separată care rulează exact așa cum ați scris și efectuați o ieșire echilibrată prin intermediul conexiunii.
dar în mod constant trebuie curățat (dacă nu curățați mai mult de 1-2 zile) cererea de a merge la culcare.