View Full Version : [SQL] - Tabelle enormi!!!!
Ho progettato un DB con varie tabelle di cui alcune rischiano di "esplodere" per la grande mole di informazioni che devono contenere.
Probabilmente avrei dovuto adottare un approccio diverso, ma non era prevedibile una crescita di questo tipo (le specifiche del progetto sono cambiate continuamente durante la realizzazione... :rolleyes: )
Comunque, ho una tabella che attualmente ha circa 20.000 voci, vorrei sapere se esiste un modo x snellirla. Al momento le interrogazioni non sembrano risentirne in modo particolare, ma non vorrei che la cosa mi sfuggisse di mano. Esiste un modo x velocizzarla? Ho provato a fare un SELECT * FROM tabella, con l'intenzione di visualizzare tutte e 20.000 le righe, ma dopo un paio di minuti di calcolo ho interrotto la query, perchè non sembrava voler rispondere in tempi brevi. Due minuti di attesa sono comunque troppi... :help:
Consigli?
mattia.pascal
13-12-2006, 15:03
Non possiamo dirti come snellire i dati di una tabella senza saperne il contenuto. Comunque considera che 20000 righe non sono un numero elevato per i moderni motori di ricerca dei Datebase. Naturalmente non puoi pensare di fare un SELECT * FROM, non ha senso farsi restituire 20000 righe da un database. Se nella tua applicazione hai neccessità di fare un SELECT * significa che il DataBase è impostato male. In tal caso studiati un po di teoria sui database relazionali.
Ho provato a fare un SELECT * FROM tabella, con l'intenzione di visualizzare tutte e 20.000 le righe, ma dopo un paio di minuti di calcolo ho interrotto la query, perchè non sembrava voler rispondere in tempi brevi. Due minuti di attesa sono comunque troppi... :help:
Consigli?
20.000 righe non sono tante. Prova a creare un indice con una colonna molto selettiva e ad accedere con quello. Controlla l'execution plan.
Che db usi?
^TiGeRShArK^
13-12-2006, 15:29
e ti lamenti di 20.000 righe? :D
pensavo fossi arrivato almeno a 200.000.000 da come avevi scritto :asd:
giannola
13-12-2006, 16:46
Ho progettato un DB con varie tabelle di cui alcune rischiano di "esplodere" per la grande mole di informazioni che devono contenere.
Probabilmente avrei dovuto adottare un approccio diverso, ma non era prevedibile una crescita di questo tipo (le specifiche del progetto sono cambiate continuamente durante la realizzazione... :rolleyes: )
Comunque, ho una tabella che attualmente ha circa 20.000 voci, vorrei sapere se esiste un modo x snellirla. Al momento le interrogazioni non sembrano risentirne in modo particolare, ma non vorrei che la cosa mi sfuggisse di mano. Esiste un modo x velocizzarla? Ho provato a fare un SELECT * FROM tabella, con l'intenzione di visualizzare tutte e 20.000 le righe, ma dopo un paio di minuti di calcolo ho interrotto la query, perchè non sembrava voler rispondere in tempi brevi. Due minuti di attesa sono comunque troppi... :help:
Consigli?
ho idea che tu stia usando access :ciapet:
cmq sono d'accordo col fu mattia pascal, studiati il modello relazionale, perchè non ha senso chiedere la visualizzazione di 20000 ennuple.
Grazie x le risposte!
Comunque la SELECT * che ho menzionato era solo un esempio! E' ovvio che una query che restituisce 20000 elementi è una cosa pazzesca! :rolleyes: volevo solo vedere quanto tempo impiegava a rispondere all'interrogazione, prendendolo come riferimento di worst-case...
Ah, non ho risposto alle domande: uso MySQL 5 e non ACCESS ;)
e la teoria dei DB relazionali me la sono già studiata (se l'ho capita poi è un altro discorso :p :p :p :cool: )
giannola
14-12-2006, 07:46
Grazie x le risposte!
Comunque la SELECT * che ho menzionato era solo un esempio! E' ovvio che una query che restituisce 20000 elementi è una cosa pazzesca! :rolleyes: volevo solo vedere quanto tempo impiegava a rispondere all'interrogazione, prendendolo come riferimento di worst-case...
Ah, non ho risposto alle domande: uso MySQL 5 e non ACCESS ;)
e la teoria dei DB relazionali me la sono già studiata (se l'ho capita poi è un altro discorso :p :p :p :cool: )
un db generalmente impiega millesimi di secondo a rispondere ad una interrogazione.
Se è lento vuol dire che c'è dell'altro.
Nightmare
14-12-2006, 09:28
se mette 2 minuti a tirar fuori 20mila righe stai usando un pentium 2 :|
su un pc (adibito a server di sviluppo) abbastanza vecchiotto con su un DB oracle, 3 milioni di righe le tira fuori cmq in 10 secondi.
cambia pc :)
Potrebbe anche dipendere dall'infrastruttura. Stai Interrogando il DBMS da un server diverso? Comunque concordo con gli altri: 2+ minuti per una select * di 20000 righe => qualcosa non funziona.
Potrebbe anche dipendere dall'infrastruttura. Stai Interrogando il DBMS da un server diverso? Comunque concordo con gli altri: 2+ minuti per una select * di 20000 righe => qualcosa non funziona.
Pentium4 a 3GHz!!! La query l'ho lanciata direttamente da phpmyadmin, mentre al database, per il suo normale utilizzo, accedo tramite pagine PHP visualizzate con Firefox 2.0. Comunque le interrogazioni "normali" le esegue velocemente, dovendo andare a visualizzare, per ora, al max 1000 elementi di quella tabella di cui parlavamo sopra...
Pentium4 a 3GHz!!! La query l'ho lanciata direttamente da phpmyadmin, mentre al database, per il suo normale utilizzo, accedo tramite pagine PHP visualizzate con Firefox 2.0. Comunque le interrogazioni "normali" le esegue velocemente, dovendo andare a visualizzare, per ora, al max 1000 elementi di quella tabella di cui parlavamo sopra...
Hai provato ad eseguire la stessa query col tool 'MySQL Query Browser' ?
ho idea che tu stia usando access :ciapet:
cmq sono d'accordo col fu mattia pascal, studiati il modello relazionale, perchè non ha senso chiedere la visualizzazione di 20000 ennuple.
Io sul lavoro ho dovuto fare una griglia che visualizza tutti i record di una tabella... che al momento sono + di 200mila... purtroppo ci sono folli che voglio cose del genere :rolleyes:
cmq un problema potrebbe essere l'eccessiva ridondanza dei dati, la soluzione é normalizzare il + possibile ;)
cosa intendi per normalizzare?
ciao ciao e grazie
cosa intendi per normalizzare?
ciao ciao e grazie
Normalizzazione (http://it.wikipedia.org/wiki/Normalizzazione_del_database)
'iao
Nightmare
15-12-2006, 17:56
cosa intendi per normalizzare?
:doh:
ma ho una domanda stupida?
ma ho una domanda stupida?
Affatto. Due appunti però:
1) Usa i motori di ricerca. :read:
2) Usa i motori di ricerca. :fagiano:
anonimizzato
15-12-2006, 21:14
Se ti si pianta MySQL per una query su 20.000 riga c'è qualcosa che non va di sicuro
dipende, se kome lavoro tratti DB é una kosa gravissima... se no é normalissimo nn sapere kosa sia :D
esatto! non lavoro con db.
ciao ciao
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.