Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    MySql e tabelle di grandi dimensioni

    Sto progettando un database per gestire una community e ho alcuni dubbi riguardo la struttura dello stesso nel caso in cui alcune delle tabelle inizino ad essere molto popolate.
    Il sistema dovrebbe gestire un classico sito di annunci suddiviso in categorie. Ogni annuncio avrebbe gli stessi campi indipendentemente dalla categoria di appartenenza: avevo quindi pensato di creare un'unica tabella contenente gli annunci con l'aggiunta del campo categoria_id per definire la categoria di appartenenza dell'annuncio.
    Mi sono sorti però dei dubbi riguardo questa struttura che mi sembrava inizialmente la più logica e corretta.
    Non ponendomi limiti mi sono chiesto: cosa succederebbe se la tabella annunci fosse popolata con decine di milioni di righe o semplicemente con qualche milione di righe? Probabilmente ci sarebbe un decadimento prestazionale notevole.
    Allora ho pensato ad una seconda soluzione: creare una tabella annunci separata per ogni categoria. Si tratterebbe di N tabelle identiche.
    Ovviamente effettuando interrogazioni sugli annunci di una singola categoria il tutto dovrebbe essere più veloce ma nelle eventuali sezioni in cui si effettuassero interrogazioni generali riguardanti tutte le categorie contemporanemente dovrei ricorrerre a UNION sulle N tabelle o alla generazione di una vista.
    Ho effettuato dei test appunto utilizzando le viste e mi sono accorto che in una situazione come quella appena descritta ci sono evidenti limiti prestazionali.
    In difinitiva quello che mi interesserebbe sapere è: esistono dei limiti teorici per le dimensioni delle tabelle oltre le quali conviene ricorrere a soluzioni alternative? Se si, quali potrebbero essere?
    So di essere stato un po' vago ma spero di riuscire comunque a trovare l'aiuto di qualcuno per fare un po' chiarezza.
    http://www.beavermag.it

  2. #2

    Re: MySql e tabelle di grandi dimensioni

    Originariamente inviato da biamat
    Sto progettando un database per gestire una community e ho alcuni dubbi riguardo la struttura dello stesso nel caso in cui alcune delle tabelle inizino ad essere molto popolate.
    Il sistema dovrebbe gestire un classico sito di annunci suddiviso in categorie. Ogni annuncio avrebbe gli stessi campi indipendentemente dalla categoria di appartenenza: avevo quindi pensato di creare un'unica tabella contenente gli annunci con l'aggiunta del campo categoria_id per definire la categoria di appartenenza dell'annuncio.
    Mi sono sorti però dei dubbi riguardo questa struttura che mi sembrava inizialmente la più logica e corretta.
    Non ponendomi limiti mi sono chiesto: cosa succederebbe se la tabella annunci fosse popolata con decine di milioni di righe o semplicemente con qualche milione di righe? Probabilmente ci sarebbe un decadimento prestazionale notevole.
    Allora ho pensato ad una seconda soluzione: creare una tabella annunci separata per ogni categoria. Si tratterebbe di N tabelle identiche.
    Ovviamente effettuando interrogazioni sugli annunci di una singola categoria il tutto dovrebbe essere più veloce ma nelle eventuali sezioni in cui si effettuassero interrogazioni generali riguardanti tutte le categorie contemporanemente dovrei ricorrerre a UNION sulle N tabelle o alla generazione di una vista.
    Ho effettuato dei test appunto utilizzando le viste e mi sono accorto che in una situazione come quella appena descritta ci sono evidenti limiti prestazionali.
    In difinitiva quello che mi interesserebbe sapere è: esistono dei limiti teorici per le dimensioni delle tabelle oltre le quali conviene ricorrere a soluzioni alternative? Se si, quali potrebbero essere?
    So di essere stato un po' vago ma spero di riuscire comunque a trovare l'aiuto di qualcuno per fare un po' chiarezza.
    se avessi un sito con 10 milioni di annunci penso che potrei permettermi server equippaggiati decemente per evitare il problema...

    Unica tabella indicizzata correttamente

  3. #3
    Il nocciolo della questione vorrei fosse indipendente dalla potenza hardware della macchina o dalla configurazione di mysql (soluzioni come il cluster per esempio) ma vorrei capire quale sarebbe la struttura database più performante per gestire una soluzione di questo tipo.
    http://www.beavermag.it

  4. #4
    Originariamente inviato da biamat
    Il nocciolo della questione vorrei fosse indipendente dalla potenza hardware della macchina o dalla configurazione di mysql (soluzioni come il cluster per esempio) ma vorrei capire quale sarebbe la struttura database più performante per gestire una soluzione di questo tipo.
    ti sei risposto da solo nel momento in cui hai fatto la domanda..una cosa va bene per un tipo di richieste una cosa va bene per un altro!
    Analizza l'applicazione e cerca di capire quali possono essere le richieste più frequenti fatte al database e in base a queste lo costruisci. Resta il fatto che molte righe su una tabella correttamente indicizzate non rallenta così tanto le prestazioni quanto stare lì a fare unioni e viste continuamente,anzi non rallenta così tanto come uno possa pensare...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.