Salve a tutti,
lo scorso anno ho realizzato un mio gestionale con php/mysql..
A distanza di un anno vorrei allargare il mio software ad altri reparti della mia struttura, ma abbiamo notato che usando il precedente progetto inserendo molti dati nel corso del tempo il sistema si rallenta parecchio per determinate operazioni.
Vi faccio un esempio:
Ho una tabella `ORDINI` (InnoDB) con alcuni campi, e tra questi il campo `isFinished` (0/1).
Quando gli ordini vengono completati il campo `isFinished` diventa = 1, così il giorno successivo.. quando eseguo le SELECT di tutti gli `ordini_id` ancora in sospeso (`isFinished` = 0) il sistema mi restituisce gli ID su cui si lavora. L'applicazione interroga spesso il DB con select di questo tipo (anche con dei cicli, ecc.).
Nel corso dei mesi.. essendo cresciuta parecchio questa tabella.. le query ci mettono sempre più tempo.
Come posso risolvere?
Ad esempio.. usare una VIEW? usare tabelle MEMORY? oppure MERGE? Insomma.. che consiglio mi potete dare per snellire il processo d'interrogazione sul DB?
Grazie
lo scorso anno ho realizzato un mio gestionale con php/mysql..
A distanza di un anno vorrei allargare il mio software ad altri reparti della mia struttura, ma abbiamo notato che usando il precedente progetto inserendo molti dati nel corso del tempo il sistema si rallenta parecchio per determinate operazioni.
Vi faccio un esempio:
Ho una tabella `ORDINI` (InnoDB) con alcuni campi, e tra questi il campo `isFinished` (0/1).
Quando gli ordini vengono completati il campo `isFinished` diventa = 1, così il giorno successivo.. quando eseguo le SELECT di tutti gli `ordini_id` ancora in sospeso (`isFinished` = 0) il sistema mi restituisce gli ID su cui si lavora. L'applicazione interroga spesso il DB con select di questo tipo (anche con dei cicli, ecc.).
Nel corso dei mesi.. essendo cresciuta parecchio questa tabella.. le query ci mettono sempre più tempo.
Come posso risolvere?
Ad esempio.. usare una VIEW? usare tabelle MEMORY? oppure MERGE? Insomma.. che consiglio mi potete dare per snellire il processo d'interrogazione sul DB?
Grazie