Citat:
svepomalo: Mozda sam ja samo paranoican, ali radim na projektu i imam potpisan NDA :)
Upravo je ovo sto meni treba samo sam izmislio ove tabele ali je preslikano ono sto meni treba :)
Nadam se da me razumes :)
eh ima li ko da ne razume :D
Citat:
svepomalo:
Posto ce stored procedura da bude sporija ostaje mi da ovo odradim preko php-a.
stored procedura ce biti mnogo brza od php-a
Citat:
svepomalo:
Dakle jedan upit da pohvatam usere koji su istekli pa onda da uhvatim random last_name, first_name i country iz tabele names za taj br usera i kroz petlju da protrcim kroz usere i da u vakoj iteraciji uradim update za tog user-a.
Nista mi drugo ne pada na pamet, samo nisam siguran koliko ce ovo brzo ici i da li ce biti brze od stored procedure.
isto to uradis samo kroz stored proceduru, mnogo brze nego kroz php
da stanem sad malo u odbranu mysql-a (iako je potpuno idiotski to sto jos uvek ima ta limitacija ali .. jbg .. sta da se radi) to sto ti radis je uglavnom u domenu "prevare" .. sve sto ima veze sa rand() je realno uvek sporo posto ne postoji nacin da optimizer zna sta da radi ...
da ja moram to da odradim ja bi uradio sledece
1. napravio bi tabelu "names" da ima 4-5 puta vise slogova (znaci svaki slog se ponavlja 4-5 puta) i inicijalno bi randomizovao njen sadrzaj
2. uradim count() za koliko ima tih koje mora da prebudzis @C
3. izmerim koliko ima ukupno u names kao @T
4. preracunam neki @X da bude @T - C
5. napunim temp tabelu (create temporary table names_temp like names;) sa novim imenima (insert into names_temp select * from names limit @T,@C)
- ovaj insert moras da napravis kao prepare_statement(concat('insert into names_temp select * from names limit ',@T,',',@C)) pa onda uradis execute tog prepare-a i onda unprepare
6. onda uradis update tvoje tabele tako sto radis join sa temp tabelom
7. dropnes temp tabelu