|
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 |
02. 03. 2009. | #1 |
profesionalac
Qualified
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
|
MYSQL: Kako struktuirati tabele vezano za broj prikaza nekog teksta na stranici?
Zdravo svima.
Recimo da imam tabelu 'tekstovi' Kôd:
TEKSTOVI id, naslov, broj_prikaza (broj pregleda jednog teksta) Kôd:
UPDATE tekstovi SET broj_prikaza = broj_prikaza+1 WHERE id = 344363; Znam da je ovaj upit jako jednostavan i brz (pise u mysql dokumentaciji), ali ce se oni izvrsavati kod svakog prikaza oglasa. Problem je sljedeci: Kao sto znamo kada se radi UPDATE nad nekom tabelom ta tabela ce biti lockovana i svi SELECT upiti ce biti na cekanju, a radi se o glavnoj tabeli koja ce se korstiti u svakom upitu. Takodjer, koliko znam bilo kakav update nad nekom tabelom će poremetiti interni mysql cache, tako da i tu postoje određeni gubici. A stranica bi trebala da bude jako posjećena. Ja sam razmisljao da se napravi dodatna tabela 'prikazi': Kôd:
PRIKAZI id_tekst,broj_prikaza Pretpostavljam da JOIN ove dvije tabele ne dolazi kao rješenje (sa ciljem da se izbjegne CRON job), jer bi i tada se pojavljivali 'isti problemi', a plus bi imli dodatno spajanje tabela. Da li moja razmisljanja su ispravna i kakva su vaša iskustva sa ovim o čemu trenutno pišem? Hvala unaprijed na učešću u temi. Pozz, mb |
02. 03. 2009. | #2 |
Knowledge base
Wrote a book
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
|
Verovatno su ti tabele u MyISAM formatu, probaj InnoDB - on ne lockuje celu tabelu.
__________________
Năo quero mais seguir um só caminho |
02. 03. 2009. | #3 |
profesionalac
Qualified
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
|
Da, u pravu si. Ne bih o ovome ni razmisljao da mi nije potrebna podrska za Full-text search indexes, jer kao sto i sam znas InnoDB nema podrsku za pomenutu opciju.
Pozzz |
02. 03. 2009. | #4 |
Knowledge base
Wrote a book
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
|
Ja ovde vidim kontradiktornost - kazes da ti UPDATE pravi problem, a sa druge strane, FullText search nije problematican (jer i on ume da "zakoci" tabelu)?
Btw, koliko uopste ima tekstova?
__________________
Năo quero mais seguir um só caminho |
02. 03. 2009. | #5 |
profesionalac
Qualified
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
|
Iskren da budem, nisam znao da Full Text zakljuca tabelu! On bi se rjeđe korstio, jer bi zapravo preko njega rijesio pretragu/pretrazivanje po kljucnoj rjeci.
Vremenom bi trebalo da bude i do 100.000 aktivnih tekstova (ne bi bili veliki, do 700 karaktera) u bazi. |
02. 03. 2009. | #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
|
Da sam na tvom mestu, ja bih sve konvertovao u InnoDB, i cron scriptom (koja bi se izvrsavala nocu tj. u periodu najmanje posete) updatovao broj pageviews.
I uveo drugi mehanizam za pretragu tekstova (sphinx?). A razmislio bih i o keshiranju stranica, da ne mora svaki put da se vuce iz baze.
__________________
Năo quero mais seguir um só caminho |
03. 03. 2009. | #7 |
profesionalac
Qualified
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
|
Vidi, nemam ja trenutno problem koji sam gore naveo. VJeorvano sam konfuzno napisao.
Tek treba da napravim pomenuti pageviews, pa razmislajm kako da najbolje izvedem, kako ne bi bilo problema. Mozgajuci, dosao sam do pomenutih MOGUCIH problema uz vezi lockovanja i cimanja intrenog mysql cache-a. VJeorvno cu uraditi sa innodb i dodatanom tabelom. Sto se tice sphinx-a, cuo sam i ranije za njega, ali mi se nije svidjela 'ideja da ja moram voditi racuna' od indexiranju. Mjedutim, malo detaljnije sam se upozano sa njim i vidim da ga hvale, a mozda mi i pomogne oko nekih non-full text upita. Da, Cache_Lite ce odraditi posao na nekim mjestima, gdje lifetime cache moze da traje i po 60min, što je odlicno. Hvala ti na izdvojenom vremenu. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
MySQL - istovremeni insert u tri povezane tabele koje imaju autoincrement | Igor Manjenčić | SQL baze podataka - Sponzor: Baze-Podataka.net | 4 | 14. 12. 2010. 09:35 |
[MySQL] Neogranicen broj kategorija i proizvoda, upit | mb_sa | SQL baze podataka - Sponzor: Baze-Podataka.net | 8 | 31. 05. 2009. 15:19 |
Broj poruka po stranici? | Dragi Tata | Obaveštenja, predlozi i pitanja | 8 | 17. 12. 2006. 04:41 |
Promena prikaza TIMESTAMP polja u MySQL | bluesman | SQL baze podataka - Sponzor: Baze-Podataka.net | 9 | 31. 01. 2006. 20:13 |