DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > SQL baze podataka - Sponzor: Baze-Podataka.net
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

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

Odgovori
 
Alati teme Način prikaza
Staro 02. 03. 2009.   #1
mb_sa
profesionalac
Qualified
 
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
mb_sa is on a distinguished road
Default 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)
Podatak 'broj_prikaza' se dobije izvrsavanjem jenodstavnog UPDATE upita, tipa:
Kôd:
UPDATE tekstovi SET broj_prikaza = broj_prikaza+1 WHERE id = 344363;
Ovaj podatak prikazujem na razlicitim mjestima, poput skracenog prikaza teksta u njegovoj kategoriji, na naslovnoj stranici, na prikazu samog teksta i slicno

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
U kojoj ce se vrsiti svi moguci update vezani za prikaz teksta, a onda bih nariktao cron job (svaka 24h, sa obzirom da mi ne trebaju real time podaci) koji ce sumarne prikaze prbaciti u tabelu 'tekstovi', tako da bih ih imao u glavnoj tabeli, izvlacio kada mi trebaju, a pomenuta tabela ne bi bila opterecena pomenutim update upitom.

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
mb_sa je offline   Odgovorite uz citat
Staro 02. 03. 2009.   #2
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

Verovatno su ti tabele u MyISAM formatu, probaj InnoDB - on ne lockuje celu tabelu.
__________________
Năo quero mais seguir um só caminho
MorenoArdohain je offline   Odgovorite uz citat
Staro 02. 03. 2009.   #3
mb_sa
profesionalac
Qualified
 
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
mb_sa is on a distinguished road
Default

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
mb_sa je offline   Odgovorite uz citat
Staro 02. 03. 2009.   #4
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

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
MorenoArdohain je offline   Odgovorite uz citat
Staro 02. 03. 2009.   #5
mb_sa
profesionalac
Qualified
 
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
mb_sa is on a distinguished road
Default

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.
mb_sa je offline   Odgovorite uz citat
Staro 02. 03. 2009.   #6
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

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
MorenoArdohain je offline   Odgovorite uz citat
Staro 03. 03. 2009.   #7
mb_sa
profesionalac
Qualified
 
Datum učlanjenja: 19.05.2007
Poruke: 123
Hvala: 13
3 "Hvala" u 3 poruka
mb_sa is on a distinguished road
Default

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.
mb_sa je offline   Odgovorite uz citat
Odgovori



Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

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


Vreme je GMT +2. Trenutno vreme je 01:39.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.