|
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 |
14. 12. 2010. | #1 |
novi član
Na probnom radu
Datum učlanjenja: 10.12.2010
Poruke: 11
Hvala: 2
1 "Hvala" u 1 poruci
|
Optimizacija baze - da li odvajati u novu tabelu?
Oduvek me je interesovala optimizacija baze podataka i stalno slušam svakakve "cake" za poboljšanje performansi.
Da li je skuplja operacija pronalaženja tabele (u moru tabela) i izvršavanje jednostavnog upita nad manjom tabelom (sa manje unosa i manje polja) ili izvršiti jedan upit nad većom tabelom? Da li je uopšte skupa operacija pronalaženja same tabele u ogormnoj bazi. Drugo pitanje, na koji način biste realizovali sistem notifikacija (kao fb recimo) gde imamo nekoliko hiljada korisnika online koji na 1 sekund izvršavaju upit nad tom tabelom (ili tabelama)? A opet potrebno je u tu tabelu često ubacivati. Ok, ta tabela (ako je jedna) ne bi imala više od 3 polja i ne bi imala mnogo unosa jer bi se stariji arhivirali u drugu tabelu koja bi se zvala tek po potrebi. Da li je to jedino što se može učiniti. Šta predlažete? Treće pitanje je vezano za chat sistem i kako optimizovati taj deo baze. I ako možete da se ograničite samo na mySQL Hvala
__________________
Igor Manjenčić blog |
14. 12. 2010. | #2 |
majstor
Wrote a book
|
Ne postoji 'silver bullet' koji rjesava sve probleme tj 'najoptimalnija varijanta za sve'. Uvijek je rijesenje zavisno od konkretne situacije tako da bi bilo bolje da dodjes sa konkretnim tabelama, upitima, upisima, frekvencijom i slicno pa ti se onda moze i pomoci.
Facebook mislim da koristi Cassandra-u tj noSQL bazu podataka gdje su pravila drugacija. |
14. 12. 2010. | #3 | ||
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Citat:
Dakle, onako kako bih ja resio pomenuti problem: 1) Prvo pogledas sadrzaj tih tabela, da li sva polja koja pretrazujes moraju biti tu? Da li su tipovi polja optimizovani u odnosu na sadrzaj tabele? Npr ako za neko checked 0/1 koristis int, to znaci da trosis 3 bajta po polju vise nego sto treba, pa puta milion slogova = 3MBajt ... veca tabela = sporija tabela 2) Koristi fiksne tipove kada je to moguce, npr za smestanje ip adresa bolje je koristiti char nego varchar polje (brze je). Not null bi trebao biti brzi od Null polja itd. 3) Koristi indexe i explain za optimizaciju istih 4) Ako imas puno upisa/citanja istovremeno predji na innodb, u nasem slucaju pokazao se mnogo bolje od myisam (low level locking) 5) Bolji hardware Citat:
|
||
"Hvala" dinke za poruku: |
14. 12. 2010. | #4 | |
majstor
Wrote a book
|
Citat:
Kôd:
mysql> SELECT INET_ATON('192.168.10.50'); +----------------------------+ | INET_ATON('192.168.10.50') | +----------------------------+ | 3232238130 | +----------------------------+ 1 row in set (0.00 sec) mysql> SELECT INET_NTOA(839559360); +----------------------+ | INET_NTOA(839559360) | +----------------------+ | 50.10.168.192 | +----------------------+ 1 row in set (0.00 sec) |
|
14. 12. 2010. | #5 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Kazu I kako onda dobijes jedan pool? Npr :
Kôd:
select whatever where ip like '192.168.%'; PHP kôd:
Kôd:
select whatever from foo_table where date_field = current_date(); |
14. 12. 2010. | #6 |
Knowledge base
Wrote a book
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
|
Ako imas mogucnosti da furas nesto drugo osim MySql, istrazi non-relational baze tipa MongoDB, Cassandra ili Redis (key-value dbs).. Imas boljih resenja koje po performansama tuku MySQL nekoliko desetina puta (procackaj benchmark testove na netu). Jedina caka je sto ce ti trebati vise vremena da udjes u stos, pogotovu ako si dosad radio samo sa relational bazama.
__________________
Năo quero mais seguir um só caminho |
14. 12. 2010. | #7 | |
majstor
Wrote a book
|
Citat:
|
|
14. 12. 2010. | #8 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
|
14. 12. 2010. | #9 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
@MorenoArdohain
Dobro bre pusti coveka da prvo nauci MySQL, nemoj odmah te razne Kasandre, Ljovisne, Madres egoistas ... |
14. 12. 2010. | #10 |
Knowledge base
Wrote a book
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
|
Dzabe uci MySQL ako nece moci da mu izgura zahteve
__________________
Năo quero mais seguir um só caminho Poslednja izmena od MorenoArdohain : 14. 12. 2010. u 01:58. Razlog: gramatika |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Gde i kako smo docekali Novu? | 3banchi | Opušteno | 8 | 02. 01. 2010. 01:11 |
Šta bi sa forumom za novu godinu? | mangia | Obaveštenja, predlozi i pitanja | 61 | 21. 01. 2009. 16:38 |
javascript - kretanje kroz tabelu | bodi dilber | Sva početnička pitanja | 7 | 27. 08. 2008. 10:45 |
princip unosa u tabelu | [nq] | SQL baze podataka - Sponzor: Baze-Podataka.net | 10 | 06. 03. 2007. 14:09 |
Problem sa upisom u tabelu | bokey | SQL baze podataka - Sponzor: Baze-Podataka.net | 6 | 12. 09. 2006. 14:44 |