Topic: viena vs. daug lentelių

Sveiki,
toks klausimas iškilo, ir mėginu išspręsti problemą kol dar vyksta kūrimas.
esmė tokia, kad keliose (3-4) lentelėse bus kaupiama informacija apie vartotojus.. t.y. 1 lentelė skirta vartotojų kontaktų sąrašams (kontaktuose saugoma info apie juos - vardas, pavarde, sukūrimo data, vėliau daugės laukų), 2 - vartotojų išsiųstų laiškų informacija (be body dalies), tokia, kaip laikas, kam ir t.t.., 3-4 - response'ų dalis.
Esmė tokia, kad kiekvienas vartotojas gali turėti po 1000-10.000 ir daugiau kontaktų. Ta pati istorija su laiškais.

Taigi mano klausimas būtų kas geriau ir kodėl. Ar viena milžiniška lentele kontaktų, kuri per ID surista su vartotoju (na manau galiausiai ten surinkti per 1 mln. įrašų tikrai nebus labai sunku ir neužtruks labai ilgai.), ar tarkim, geriau kurti kontaktų atskiras lenteles, kuriose būtų kiekvieno vartotojo kontaktai (bet tuomet lengvai atsiras labai daug lentelių DB (gal tada skaidyti DB kas kažkiek lentelių?)), o gal mėginti riboti įrašų skaičių lentelėje ir tiesiog "dakūrinėti" naujas lenteles, tarkim kas 100.000 ar 500.000 įrašų? O gal kas nors turite kokių nors kitų pasiūlymų? Gal DB skaldyti kaip nors?

P.S. cia PHP projektas ir kol kas naudoju MySQL, bet kadangi dar nepaleistas projektas yra galimybe kažką keisti (tiesiog neturiu praktikos su kitomis sistemomis, bet greit mokausi).
P.S.S. Duomenys reikalingi +- kiekvienam vartotojui su tam tikrais užklausimais.

Re: viena vs. daug lentelių

Niekada dinaminis lentelių ar db kūrimas neprivedė prie gero :)

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: viena vs. daug lentelių

@scorpioniz: pasidomek kas yra lenteliu particionavimas.

Man yra teke daryti panasu darba "vidiniu zinuciu sistema su pokalbiu istorijomis". Viskas puikiausiai sukosi su ~100k useriu ir ~60 mln. zinuciu.

P.S. zinoma viskas sukosi ne ant shared hostingo (-;