[Db] Join tabella con nome database
aldo bertoldini
aldobertoldini a gmail.com
Mar 28 Nov 2006 16:21:17 CET
Il 28/11/06, Domenico L.<domenico.lorusso a pleiade.it> ha scritto:
> aldo bertoldini ha scritto:
> > Il 28/11/06, Marcello Vezzelli<marcello a vezz.it> ha scritto:
> >
> >>
> >> > 2- In linea teorica questa struttura (ad ogni ecommerce il suo db) vi
> >> > sembra stupida o credete sia funzionale?
> >> Mah, se sapevi già che andavi a parare in una architettura multicliente,
> >> conveniva inserire un riferimento al cliente e tenere un database unico.
> >> In questo modo filtravi i dati di ogni cliente, mantenendo un database
> >> unico.
> >>
> > Comunque fare una ricerca in un database di 10000 prodotti (db unico)
> > o di 100 prodotti (db separati) credo cambi notevolmente a livello
> > prestazionale, no?
> log base 10 100 e log base 10 di 10000: non sono quelle le differenze
>
>
> Non so perché sente sempre più spesso il parlare di dimensioni del base
> dati come parametro assoluto
>
> allora l'operazione più pesante per un dbms è la join (tralascio le
> distinct/intersect/minus) non accedere a qualche tera di dati.
>
> Per l'accesso esistono gli indici che riducono in termini logaritmici il
> costo di accesso. Per le join la complessità è al meglio NlogN ma in
> alcuni casi è quadratica, inoltre l'N di partenza potrebbe non essere il
> tuo subset ma direttamente il record count delle tabelle.
Ovviamente è tutto indicizzato.
Visto e considerato che le ricerche coinvolgerebbero comunque lo
stesso numero di tabelle sia avendo un solo db che molti db (ripeto:
ogni cliente svolge le ricerche SOLO sul suo db, non esistono ricerche
incrociate tra i db dei vari clienti), il fattore limitante diventa il
numero di record di ogni tabella, credo proprio.
Se ho 10 ecommerce con 1000 prodotti ciascuno, visitati da 10 utenti
ciascuno contemporaneamente, avrei comunque 100 ricerche contemporanee
se ci fosse una tabella sola su una tabella di 10000 record.
Avendo le tabelle separate, ho comunque 100 ricerche (o insert o
update o quello che è) che però invece di intervenire su una unica
tabella intervengono su 10 tabelle da 1000 record (o 10 db)
contemporaneamente. Non che ne sappia tanto di numeri e complessità,
ma immagino che le prestazioni possano solo migliorare, per quanto
poco.
Maggiori informazioni sulla lista
Db