Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di tigh
    Registrato dal
    Dec 2007
    Messaggi
    52

    progettazione db: aggiungere colonne

    è vero che aggiungere colonne alle tabelle di un database già esistente può creare problemi di prestazione al db anche permanenti?

    e in questo caso come è meglio procedere: aggiungere da subito dei campi che resteranno vuoti magari a lungo o creare una nuova colonna nel momento in cui sorge l'esigenza di aggiungere un campo?

  2. #2
    quante tabelle e colonne avrà il tuo db?

  3. #3
    Sarà che non mai sviluppato database superiori ai 20-30 mila records, ma non mai riscontratato problemi ad aggiungere campi a un database già sviluppato.

    Semmai con operazioni del genere, bisogna fare attenzione a come vengono richiamati i contenuti dei singoli campi dai linguaggi lato server attraverso le query.

    Se si ha l'abitudine ad esempio di ricavare tali informazioni tramite array con indice numerico qual'è ad esempio mysql_fetch_row, allora è obbligatoriamente consigliato inserire il nuovo campo in un'ultima posizione altrimenti si creano i danni perchè quell'indice numerico andrebbe a riferirsi al campo di fianco.
    Se invece si usa mysql_fetch_array, che offre anche l'opportunità di memorizzare i contenuti in un'array con indice associativo, allora sei sicuro che non avrai problemi di questo tipo.


  4. #4
    Utente di HTML.it L'avatar di tigh
    Registrato dal
    Dec 2007
    Messaggi
    52
    Originariamente inviato da jimmyphp
    quante tabelle e colonne avrà il tuo db?
    4 tabelle in tutto.

    di base saranno:
    tabella1: 3 colonne
    tabella2: 4 colonne
    tabella3: 4 colonne
    tabella4: 6 colonne

    poi alla seconda tabella si potrebbero voler aggiungere un paio di colonne o forse di più.
    e forse anche alla quarta...
    in ogni caso l'unica con un numero di record consistente sarà la quarta che comunque dovrebbe contenerne nell'ordine delle migliaia non di più...


    @digitos: si io per ora sto usando fetch_assoc() quindi per quello non dovrei avere problemi...

  5. #5
    Originariamente inviato da tigh

    @digitos: si io per ora sto usando fetch_assoc() quindi per quello non dovrei avere problemi...
    perfetto

  6. #6

    Re: progettazione db: aggiungere colonne

    Originariamente inviato da tigh
    è vero che aggiungere colonne alle tabelle di un database già esistente può creare problemi di prestazione al db anche permanenti?

    e in questo caso come è meglio procedere: aggiungere da subito dei campi che resteranno vuoti magari a lungo o creare una nuova colonna nel momento in cui sorge l'esigenza di aggiungere un campo?
    Dipende. Senza alcun dubbio però l'idea di aggiungere colonne non richieste è assolutamente da scartare. Infatti ti porterebbe da subito proprio quelle penalizzazioni che vorresti evitare.

    Aggiungere colonne, anche se non comporta alcun problema dal punto di vista funzionale, comporta invece un calo di prestazioni, ma quanto evidente sia dipende soprattutto dall'uso che fai della nuova colonna e da come sei abituato a impostare le query.

    Considerando come buona norma mettere sempre al fondo della tabella le colonne blob, ipotizziamo ti serva aggiungere una nuova colonna dopo una colonna blob. Da ora in poi quindi il motore del DB per raggiungere la nuova colonna posta al fondo dovrà saltare il valore inline* della colonna blob.

    Prestazioni: se tu usi richiamare sempre le due ultime colonne associate insieme allora il calo di prestazioni sarà prossimo allo zero. Se invece vuoi richiamare solo l'ultima colonna allora in presenza di molte righe da esaminare le prestazioni ne risentiranno.

    * l'allocazione dello spazio inline riservato alle colonne blob dipende dai vari produttori. Alcuni RDBMS permettono pure una loro definizione personalizzata. Solitamente si aggira intorno a 255 bytes.
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  7. #7
    Utente di HTML.it L'avatar di tigh
    Registrato dal
    Dec 2007
    Messaggi
    52
    capito. grazie mille!
    My name is Saul Tigh, I am an officer in the Colonial Fleet. Whatever else I am, whatever else it means, that's the man I want to be. And if I die today, that's the man I'll be.

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.