Ahojte, mám veľkú tabuľku, cca 5M záznamov
obsahuje stĺpce
id,nazov,klucoveslova,velkost
toto sa mi automaticky cachuje na disk, jedine kedy sa to využíva je pri hľadaní (klucoveslova) vždy vypíšem všetky id a uložím do cache súboru
potom mám druhú tabuľku ktorá zas obsahuje len id,poceststiahnuti
táto tabuľka mi slúži na to, že sa mi tam dávajú počty stiahnutí, teda sa narozdiel od prevej dynamicky mení+ pri vyhľadávaní sa zoraduje na základe tejto tabulky
načítavajú sa len idčka a zvyšné dáta sa načítavajú z cache
na prvej tabulke mam indexy -> primarny na id a další na klucoveslova
v tej druhej mám primárny na id a další na poceststiahnuti a proste ma zaujíma ako sa dá efektívne pracovať s takýmito tabuľkami, tá druhá sa updatuje, zvyšuje sa počet stiahnutí, potom ešte mám problém s tým že z cache mam vysledky, idčka, ale chcem ich usporiadať podla tej duhej tabulky
a posielam potom sql WHERE in IN(1,2,5,...)
a toto môže byť dosť dlhé, ešte ma napadlo priamo tie cache súbory usporiadavať, ale to ich potom budem musiet generovať dosť často
lebo tieto súbory vznikajú pri hladaní
a ešte jedna vec, keby som chcel search index
tak si spravím tabulky
slova > id,slovo
zhody> id_slova,id_prispevku
a potom je výhodnejšie
Kód:
SELECT z.id_prispevku FROM zhody z INNER JOIN slova s ON z.id_slova = s.id WHERE (slovo LIKE 'slovo' OR slovo LIKE 'ineslovo') AND COUNT(z.id_prispevku) = 2 GROUP BY z.id_prispevku
myslite že nejak takto to je výhodné, alebo proste vypísať pre všetky slova a potom to pomocou php Zprienikovať?
Ďakujem