Enormno podatkov, sesutje serverja
 
gentleman 20. mar 2013 18:22:34 Pridružen od:
21. sep 2009
331 objav
381 63 5
#1

Pozdravljeni mojstri!



Prvič se srečujem z zelo zelo veliko bazo podatkov v PHP/MySQL.

Imam tabelo ki im trenutno 2,571,934 zapisov. Notri je kar precej polj z veliko podatki.



Za potrebe statistike moram čez vsa ta polja spustiti:


$where = "user1Id = '".$id."' OR user2Id='".$id."' OR user3Id='".$id."' OR user4Id='".$id."'";

da najdem uporabnika in vse njegove rezultate. Baza se takoj sesuje ko to spustim skozi.

Kakšne so rešitve in alternative.. Kaj uporabiti, oz. kaj iskati pri Googlu?



Uporabljam CodeIgniter.



Hvala!


všeč(1) ni všeč(0) spam(0)
 
mitjast 20. mar 2013 18:31:06 Pridružen od:
16. nov 2011
37 objav
61 3 0
#2

Uporabljaš MySQL Indexe? (http://dev.mysql.com/doc/refman/5.5/en/optimization-indexes.html)


všeč(1) ni všeč(0) spam(0)
 
Gogy 20. mar 2013 19:49:15 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#3

Naj te potolažim da to ni ravno velika baza čeprav se tebi morda zdi velika.



No, vsekakor postavit indexe, pa še to bi bilo potrebno pogledat, da se indexi postavijo pravilno, sicer ne bo pravega učinka morda. Jaz bi grupiral en index na te 4 kolone.



Se dela še kaka težja poizvedba v ozadju medtem ko se dela poizvedba o kateri pišeš?


všeč(4) ni všeč(0) spam(0)
 
technolog 20. mar 2013 21:17:07 Pridružen od:
14. nov 2011
598 objav
768 300 22
#4

Tvoj dizajn baze smrdi do moje hiše. :)



Mišljeno dobronamerno. Poglej si malo normalizacijo.


všeč(2) ni všeč(0) spam(0)
Z linuxom že 7 let. Pro web development.
 
SpinX 20. mar 2013 21:30:25 Pridružen od:
17. mar 2007
2618 objav
1720 190 20
#5

Kaj pa ko bos mel 500 userjev? Za vsakega nov column v bazi?


všeč(0) ni všeč(0) spam(0)
Developer? Bi delal v kul podjetju ? http://dlabs.si/jobs
 
phpseo 20. mar 2013 21:40:05 Pridružen od:
24. nov 2007
146 objav
78 19 1
#6

technolog:

Tvoj dizajn baze smrdi do moje hiše. :)




Mislim, da ni nujno. Če je lahko userjev max 4. je čisto uredu in se izogneš relaciji.


všeč(0) ni všeč(0) spam(0)
 
gentleman 20. mar 2013 21:52:08 Pridružen od:
21. sep 2009
331 objav
381 63 5
#7

Fantje, v to tabelo se zapisuje vsaka odigrana igra uporabnikov. Lahko igrajo max 4 uporabniki, za vsakega se zapiše ID, koliko točk je pri igri dosegel, itd,.... Zdaj pa lahko je na 1,2,3,4 polju, zato moram čez vse spustiti where. To sicer ni moj design baze, delam na enem starem projektu.



Torej, pravite da si pogledam indexe in relacije malo bolje in rešim zadevo. Deal. Workin on it. Thank you!


všeč(0) ni všeč(0) spam(0)
 
gentleman 25. mar 2013 12:55:28 Pridružen od:
21. sep 2009
331 objav
381 63 5
#8

Fantje; Postavil sem en index na te štiri kolone, efekt je še vedno enak.. sesutje ko poženem query ;(


všeč(0) ni všeč(0) spam(0)
 
SlimDeluxe 25. mar 2013 13:33:25 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#9

Probaj narediti index na vsak column posebej.


všeč(1) ni všeč(0) spam(0)
Freelance Web Developer
 
carli 25. mar 2013 13:35:17 Pridružen od:
5. avg 2008
1258 objav
583 54 17
#10

Zaay123 kaj če poganjaš 4 querye ?



Se pravi poženeš en query za user1Id, če ne vrne rezultata greš delat drugi query, itd...



Verjetno iščeš po nekem ID igre, itd ...


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

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se