|
SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
29. 03. 2012. | #1 |
član
Certified
Datum učlanjenja: 21.05.2010
Lokacija: Nis
Poruke: 54
Hvala: 24
450 "Hvala" u 10 poruka
|
Vise tabela ili jedna sa vise recorda
Pozdrav svima,
Imam sledeci problem... Treba da napravim stranicu statistike, koja vraca recorde iz baze po mesecima... (to sam sa php-om vec resio) Npr. izaberes april, i vrati sve recorde za april 2012. E sad, posto se planira da tabele ima mnogo unosa, kolega mi predlaze da se napravi ista tabela naziva "tabela_{datum}", gde ce svaka sadrzati samo unose za taj mesec, te godine. Razlog, da kada se uzima statistika, da se obrada vrsi na sto manje podataka... Sa druge strane, zamisli da imam za 24 meseca 24 takve tabele... sto komplikuje stvari. Kako se resava ovaj problem?? Uzmimo za primer da ce mesecno biti 300 000 unosa. |
29. 03. 2012. | #2 |
Domagoj Horvat
Expert
|
Obradu ionako vrsis uvijek nad selektiranim podacima (koji su za mjesec dana) tako da ti je, sto se obrade tice, svejedno odakle si ih dobio.
Ostaje ti velicina tabele kao kriterij. Ako ti velicina tabele ne prelazi neku kriticnu cifru za godinu dana, onda je bolje napraviti godisnje tabele (jer ce ih biti manje). To sad ovisi o kojoj bazi se radi i testiranju kako se ponasa i sto je granicna vrijednost velicine tabele (u smislu prihvatljivih performansi). U ovom slucaju, 300 000 mjesecno x 12 mjeseci = 3.6x10^6 recorda nije cifra zbog koje bih ja brinuo (na MS SQL 2008) i uvijek bih odabrao svo vise podataka je moguce imati u istoj tabeli (opet kazem, uz kriterij da su mi performanse zadovoljavajuce). Ovisi, naravno, i o indeksima, njihovoj vrsti, ucestalosti promjena...
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
"Hvala" dee za poruku: |
29. 03. 2012. | #3 |
Ivan Dilber
Sir Write-a-Lot
|
Sto se mySQL-a tice 3-4 miliona recorda nisu problem. Ranije je MyISAM znao da puca kad tabela naraste preko ~2GB, ali koliko znam InnoDB nema tih problema (a mozda ni MyISAM vise, nisam dugo koristio), a i sumnjam da ces ti uspeti za godinu dana skupiti 2 GB statistike.
Drugi potencijalni problem je ukupan broj tabela, jer kad je puno tabela, a upiti su random (otvaraju sve tabele podjednako) zna biti problem sa performansama, ali to je opet kriticno kod vise hiljada tabela, nema sanse da naletis na taj problem. Tako da uradi ono sto ti je najjednostavnije i ne brini...
__________________
Leadership is the art of getting people to want to do what you know must be done. |
29. 03. 2012. | #4 |
član
Certified
Datum učlanjenja: 21.05.2010
Lokacija: Nis
Poruke: 54
Hvala: 24
450 "Hvala" u 10 poruka
|
Ok, hvala
|
|
|