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 |
11. 01. 2006. | #11 |
Ivan Dilber
Sir Write-a-Lot
|
a jeste li razmisljali o upotrebi temp tabela koje su tipa HEAP, to jest drze se u memoriji servera ?
Nisam nikad merio vreme, ali su HEAP tabele prilicno brzo, ja sam tu tehniku koristio za kesiranje hijerarhije kategorija (posto su se u bazi cuvali samo parent id za pod-kategorije, pa onda to treba prevezati u stablo..) i fino je radilo... nema pojma doduse koliko je to brzo u poredjenju sa fajlovima, meni je trebao sql join, pa mi je odgovaralo da koristim bazu za to, da ne moram rucno da ga radim... mislim da postoji i neka fora da se nalozi mysql da za obicnu myisam tabelu cuva index u memoriji umesto u zasebnom fajlu, jel zna neko nesto o tome ???
__________________
Leadership is the art of getting people to want to do what you know must be done. |
11. 01. 2006. | #12 | |
Python Ambassador
Master
|
Hm, mislim da HEAP (aka MEMORY) tabele nisu najefikasnije rešenje za keš, osim ako ne želiš da izgubiš sav sadržaj keša pri restartovanju servera
Citat:
Pros: 1. Brže su Cons: 1. Zahtevaju dodatni RAM 2. Celokupne se moraju nalaziti u RAM-u 3. Pri restartovanju servera gube se podaci sadržani u njima (definicije same tabele ostaju) 4. Mogući sinhronizacioni problemi ako koristimo replikaciju 5. Ne podržavaju BLOB i TEXT polja (kao i njihove varijante, duh) 6. Polja tabele su fiksne dužine Eto, sad je samo ostalo da se dodaju korektivni faktori za svaku stavku i da donesemo odluku (narodski rečeno: da izvagamo rešenje)
__________________
Python Ambassador of Serbia Poslednja izmena od Petar Marić : 12. 01. 2006. u 00:02. |
|
12. 01. 2006. | #13 |
Goran Pilipović
Sir Write-a-Lot
|
Heap tabele su (po meni) jedino dobre za privremene transakcije kada je potrebna temp tabela... iako mysql moze automatski da kreira TEMPORARY table pa da je brise po zavrsetku sesije, heap je ipak dosta brzi... Istina, igrao sam se sa tim cisto zbog testiranja i jednostavno nisam mogao da nadjem dobar razlog za neku drugu primenu.
Sto se tice tvog "Cons" br 3. to i nije tako "cons", narocito ako se koristi za kesiranje.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
12. 01. 2006. | #14 |
Python Ambassador
Master
|
Hmm, zavisi od situacije - ali se u opštem slučaju slažem s tobom Gorane.
__________________
Python Ambassador of Serbia |
12. 01. 2006. | #15 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
A mozda za podatke koji slobodno mogu da nestanu nakon restarta servera? Mislim da se za svaki podatak moze reci da je bitan, ali isto tako (bar po meni) postoje situacije kada se podatak moze proglasiti nevaznim (npr. pre-generisani captcha kodovi koji nisu prosli validaciju, a jos uvek nisu uklonjeni iz nekog razloga, ili tabela sa aktivnim sesijama...)
Sto se tice privremenih tabela, ja sam koristio MyISAM jer sam imao potrebu da ucitam veliku kolicinu podataka, sortiram ih na nekoliko nacina, izracunam poziciju svakog clana doticnog niza prilikom svakog od sortiranja, i dobijene podatke da ucitam u stvarnu tabelu... Bez da zalazim u dalju problematiku, ne znam zasto se nisam odlucio za HEAP tabele, iako sam znao da postoje - morao bih to ponovo da uradim da bih uocio problem na koji sam tada naisao...
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams |
12. 01. 2006. | #16 |
expert
Master
Datum učlanjenja: 20.12.2005
Poruke: 730
Hvala: 0
0 "Hvala" u 0 poruka
|
A CREATE TABLE tabela1 TYPE=HEAP SELECT ... Da li se pogledi skladiste u memoriji? Ja cu da prenesem podatke iz moje baze na serveru u lokal (v5) da bas vidim hoce li tabela tipa HEAP uz DROP TABLE IF EXISTS da bude brze resenje od pogleda, jer poglede imam samo u lokalu. Mogu li ja nekako znati da li je DB server pao, pa ako jeste da regenerisem tabele? Mada MySQL ima svoj interni cache, za malo podataka i mnogo UPDATE upita bilo bi mozda bolje da se ide sa tabelom tipa HEAP (moj slucaj).
Kôd:
BEGIN ;# MySQL returned an empty result set (i.e. zero rows). CREATE TABLE TMP( PRIMARY KEY ( UID ) ) TYPE = HEAP SELECT UID, USERNAME, AVERAGE FROM USER LEFT JOIN VOTES ON USER.UID = VOTES.USERID;# Affected rows:64 UPDATE TMP SET AVERAGE =10 WHERE UID =2;# Affected rows:1 SELECT * FROM TMP ORDER BY AVERAGE DESC ;# Rows: 64 COMMIT ;# MySQL returned an empty result set (i.e. zero rows). Poslednja izmena od nixa : 13. 01. 2006. u 02:05. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
cache | ivanhoe | Flash | 4 | 08. 09. 2010. 12:46 |
Cache rjesenje ... | Zizi | PHP | 2 | 17. 06. 2009. 23:48 |
about:cache | sirNemanjapro | Web aplikacije, web servisi i software | 9 | 15. 01. 2007. 15:55 |
server i cache | borstale | Web Hosting, web serveri i operativni sistemi | 16 | 22. 04. 2006. 04:49 |
Kako ubiti FF cache ? | ivanhoe | (X)HTML, JavaScript, DHTML, XML, CSS | 15 | 03. 03. 2006. 17:20 |