fatg

Statistika

Pridružen/a:
28 jan 2008, 19:20
Zadnjič aktiven:
Prispevki:
Teme:
1 | Vse teme
73
2
0
#10

Prepiši na LEFT JOIN, mislim, da bi šlo. Subqueryji so pri MySQLu strahotno počasni, majo polno ticketov odprtih na to temo. :)


všeč(0) ni všeč(0) spam(0)
#1

Poglej si evercookie, če ti ne zadošča, ti ne preostane drugega, kot registracija.


všeč(0) ni všeč(0) spam(0)
#11

No, po želji. Jaz samo povem, kako se to bolj pravilno počne. Varnostnih lukenj ima vsaka aplikacija dovolj, ni treba zavestno dodajati novih in jih krpati s htaccessom ali virtual hosti ...



Pač ne daješ občutljivih datotek na strežnik in ti posledično tudi ni treba vedno paziti, da imaš zaprt dostop do njih. Prej se navadiš, manj težav imaš, ko prideš na resen projekt. Pa še izogneš se kakšnemu kolcanju, ko ti na hostingu po nesreči ugasnejo .htaccess, odpove PHP handler, ali pa daješ zadevo na nek drug host. :)



Rešitev je namreč enostavna skripta, ki naredi:

- svn export v temp direktorij

- zbriše vse nepotrebne datoteke

- nastavi produkcijsko konfiguracijo

- rsync na strežnik


všeč(1) ni všeč(0) spam(0)
#7

Bostjan:

mam pa sam projekt na produkcija kar checkout iz SVN, in ko je vse potestirano in ziher, samo greš ssh na produkcijo, klofneš "svn up" in maš




Kje pa imaš to, da si pogledam malo .svn/text-base direktorij? ;)


všeč(1) ni všeč(0) spam(0)
#6

Absolutno ločeno. Zarad napak in varnosti; v .svn direktorijih je marsikaj napisano ...


všeč(0) ni všeč(0) spam(0)
#4

another way to skin a cat:

$Product->{"extra" . $i}


všeč(3) ni všeč(0) spam(0)
#7

ja, pri veliko podatkih je rand() počasen, ker mora izbrati prav vse zapise in jih potem še razvrstiti. Poleg tega imaš še vedno neko realno možnost, da dva dobita isti zapis.


všeč(0) ni všeč(0) spam(0)
#4

Aha, razumem. Jaz se ne bi zanašal na locking baze za logiko deljenja podatkov, ne zato, ker ne bi delovalo, ampak ker se mi zdi, da spada to drugam. Recimo, da ena skripta izvaja selecte in jih pošlje workerjem, ki jih obdelujejo, rezultat pa zapišejo v bazo, hkrati pa izvedejo update na tem recordu (označijo recimo status=complete). Master skripta pa ves čas selecta neobdelane. Bi se dalo to še na par načinov, ampak jaz bi se res izognil bazi.


všeč(0) ni všeč(0) spam(0)
#2

Ne poznam, me pa zanima, v kakšnih primerih to potrebuješ? Ta lock ti prepreči dostop do zapisa, ker ga nameravaš spremeniti, torej nočeš, da ga kdo bere, dokler je v tem procesu. Če ti je vseeno, ali dobiš staro ali svežo vrednost, potem ne uporabi FOR UPDATE, temveč navaden select. Vzporedne transakcije bodo lahko do zapisa dostopale, dokler prva ne izvede updejta, torej ne samo do selecta.


všeč(0) ni všeč(0) spam(0)
všeč(4) ni všeč(1) spam(0)