Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-05-2007, 18:50   #1
cipi
Senior Member
 
L'Avatar di cipi
 
Iscritto dal: May 2002
Città: udine
Messaggi: 546
[mysql] query LENTISSIME! E' normale?

Ciao,
sono niubbo di mysql ma devo assolutamente creare e gestire un database che avrà una decina di tabelle ma milioni di dati; una di queste tabelle, infatti, ha circa 40 colonne ma oltre 40 milioni di righe... Ho terminato di importare i primi 8 milioni (da file di testo) di righe; provo a fare qualche query (da notare che ho creato tre PRIMARY KEY e le query erano ristrette a valori su queste colonne) per testarne la velocità e.... sono LENTISSIME... (devo attendere ore!)
Ora mi chiedo, avrò sbagliato qualcosa o è normale?
Vi prego, aiuto... sono già molto incacchiato
please!
__________________
a chi non piace il vino... dio neghi anche l'acqua!
DELL Latitude E4300, iPhone 6
cipi è offline   Rispondi citando il messaggio o parte di esso
Old 19-05-2007, 19:18   #2
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
ammazza...sono parecchi record.
non ti è possibile frammentare quella tabella in più sottotabelle? (poi gestisci da codice quale interrogare)
il server è abbastanza performante?
hai provato qualche altro db? (postgres, oracle?)
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 19-05-2007, 20:48   #3
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da cipi Guarda i messaggi
Ciao,
sono niubbo di mysql ma devo assolutamente creare e gestire un database che avrà una decina di tabelle ma milioni di dati; una di queste tabelle, infatti, ha circa 40 colonne ma oltre 40 milioni di righe... Ho terminato di importare i primi 8 milioni (da file di testo) di righe; provo a fare qualche query (da notare che ho creato tre PRIMARY KEY e le query erano ristrette a valori su queste colonne) per testarne la velocità e.... sono LENTISSIME... (devo attendere ore!)
Ora mi chiedo, avrò sbagliato qualcosa o è normale?
Vi prego, aiuto... sono già molto incacchiato
please!
Devi ottimizzare il database, ma non so con mysql quanto spazio di manovra hai. Su Oracle ti saprei aiutare di più. Comunque prova a suddividere la tabella che contiene milioni di record in sottotabelle.
Considera che, se hai una tabella con, mettiamo, 3 milioni di record e dici al database di tirare su la tabella per fare una query, come impostazione di default essa viene caricata in memoria di solito per intero: ovvio che poi ci stai ore per fare una query.
Il problema non è comunque banale.
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2007, 15:12   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Controlla l'uso della memoria e dello swap sul server...se vedi che il server swappa allora monta più memoria...è l'unico modo...
Oppure vale sempre il suggerimento che ti è stato dato: dividi le tabelle...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2007, 15:24   #5
cipi
Senior Member
 
L'Avatar di cipi
 
Iscritto dal: May 2002
Città: udine
Messaggi: 546
ammazza, speravo di aver sbagliato qualcosa...
quindi la via unica sembra quella di spezzare in più tabelle. Ora però i problemi diventano i seguenti:
1) essendo che le tabelle le tiro su da file di testo (giuro, mai visti prima file di testo così grandi... ) come LOAD DATA LOCAL INFILE ..., come faccio a dirgli metti le righe da 1 a 100000 in tab1, da 100001 a 200000 in tab2, etc?
2) come gestisco una ricerca di un dato? Se non è in tab1 allora cerca in tab2 e così via o c'è qualche modo pre creare query ad hoc?
PS, grazie hwupgradati...
__________________
a chi non piace il vino... dio neghi anche l'acqua!
DELL Latitude E4300, iPhone 6
cipi è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2007, 16:01   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Hai guardato l'utilizzo della memoria durante la query ?
Che tipo di ricerche devi fare nelle tabelle ? Devi ricercare testo ?

Comunque le tabelle le puoi spezzare dopo che hai importato i dati...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2007, 16:44   #7
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da cipi Guarda i messaggi
ammazza, speravo di aver sbagliato qualcosa...
quindi la via unica sembra quella di spezzare in più tabelle. Ora però i problemi diventano i seguenti:
1) essendo che le tabelle le tiro su da file di testo (giuro, mai visti prima file di testo così grandi... ) come LOAD DATA LOCAL INFILE ..., come faccio a dirgli metti le righe da 1 a 100000 in tab1, da 100001 a 200000 in tab2, etc?
2) come gestisco una ricerca di un dato? Se non è in tab1 allora cerca in tab2 e così via o c'è qualche modo pre creare query ad hoc?
PS, grazie hwupgradati...
Non per farmi i fatti tuoi () ma devi necessariamente creare un database per cercare uno o più dati?
Più volte ho avuto a che fare con file con milioni di righe (di solito output di simulazione di traffico di rete, files di testo da 500 Mb), ma per fare le analisi non creavo un database apposta (che diventa la soluzione peggiore...).
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 09:21   #8
cipi
Senior Member
 
L'Avatar di cipi
 
Iscritto dal: May 2002
Città: udine
Messaggi: 546
Quote:
Originariamente inviato da cionci Guarda i messaggi
Hai guardato l'utilizzo della memoria durante la query ?
Che tipo di ricerche devi fare nelle tabelle ? Devi ricercare testo ?

Comunque le tabelle le puoi spezzare dopo che hai importato i dati...
La memoria non sembra andare su di molto... (PS: la macchina ha 2 giga di ram) Inoltre si, devo ottenere numeri cercando nel testo. E' un database finanziario, quindi query del tipo:
Codice:
SELECT fatturato FROM database.dati WHERE country_initials LIKE 'IT'
Interessante la cosa di spezzare dopo le tabelle... mi dici qualcosa in più o dove leggere in merito?
__________________
a chi non piace il vino... dio neghi anche l'acqua!
DELL Latitude E4300, iPhone 6
cipi è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 09:25   #9
cipi
Senior Member
 
L'Avatar di cipi
 
Iscritto dal: May 2002
Città: udine
Messaggi: 546
Quote:
Originariamente inviato da -fidel- Guarda i messaggi
Non per farmi i fatti tuoi () ma devi necessariamente creare un database per cercare uno o più dati?
Più volte ho avuto a che fare con file con milioni di righe (di solito output di simulazione di traffico di rete, files di testo da 500 Mb), ma per fare le analisi non creavo un database apposta (che diventa la soluzione peggiore...).
In realtà ti stai facendo i fatti miei...
Mi serve proprio un database... I dati li devo poi mettere a disposizione via web. Ecco perché le query DEVONO essere veloci!
__________________
a chi non piace il vino... dio neghi anche l'acqua!
DELL Latitude E4300, iPhone 6
cipi è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 09:26   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Credevo che tu dovessi fare ricerche in campi di testo molto grandi...in quel caso c'è la possibilità di organizzare la ricerca come full text search.
Comunque in tal caso crea un indice sul campo country_initials e guarda come si comporta.

Riguardo allo spezzare: http://dev.mysql.com/doc/refman/5.0/...rt-select.html
Seleziona righe con caratteristiche precise dalla tabellona e vai ad inserirle in una tabella più piccola.

Ultima modifica di cionci : 21-05-2007 alle 09:29.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 09:26   #11
simoneart
Member
 
L'Avatar di simoneart
 
Iscritto dal: Aug 2003
Messaggi: 72
Il problema potrebbe pure essere nel modo in cui scrivi la query e quindi fai la ricerca sulla tabella.

Per esempio un grosso problema di performance potrebbe essere dato dalla ricerca con LIKE.

Nel caso che hai riportato come esempio conviene probabilmente creare un nuovo campo indicizzato del tipo IT, UK sul quale fare la ricerca diretta dei record che ti interessano.
__________________
Visual Basic e dintorni Blog sullo sviluppo web
simoneart è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 09:49   #12
cipi
Senior Member
 
L'Avatar di cipi
 
Iscritto dal: May 2002
Città: udine
Messaggi: 546
Quote:
Originariamente inviato da cionci Guarda i messaggi
Credevo che tu dovessi fare ricerche in campi di testo molto grandi...in quel caso c'è la possibilità di organizzare la ricerca come full text search.
Comunque in tal caso crea un indice sul campo country_initials e guarda come si comporta.

Riguardo allo spezzare: http://dev.mysql.com/doc/refman/5.0/...rt-select.html
Seleziona righe con caratteristiche precise dalla tabellona e vai ad inserirle in una tabella più piccola.
grazie del link, cionci. Ora gli darò una letta...
Per quanto riguarda country_initials, questo è già indicizzato... La tabella è del tipo:
ID; country_initials; date; data_a; data_b; ...
Io ho indicizzato le prime 3 colonne.
Rimane comunque molto lento... soprattutto se penso che dovrò inserire selle condizioni sui dati tipo "WHERE data_a>0 AND data_b<100"
__________________
a chi non piace il vino... dio neghi anche l'acqua!
DELL Latitude E4300, iPhone 6
cipi è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 09:50   #13
cipi
Senior Member
 
L'Avatar di cipi
 
Iscritto dal: May 2002
Città: udine
Messaggi: 546
Quote:
Originariamente inviato da simoneart Guarda i messaggi
Il problema potrebbe pure essere nel modo in cui scrivi la query e quindi fai la ricerca sulla tabella.

Per esempio un grosso problema di performance potrebbe essere dato dalla ricerca con LIKE.

Nel caso che hai riportato come esempio conviene probabilmente creare un nuovo campo indicizzato del tipo IT, UK sul quale fare la ricerca diretta dei record che ti interessano.
Scusa ma sono ancora un po' ignorantello su sql... Intendi dire indicizzare la colonna country_initials o creare qualcos'altro a parte?
thx
__________________
a chi non piace il vino... dio neghi anche l'acqua!
DELL Latitude E4300, iPhone 6
cipi è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 10:27   #14
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da cipi Guarda i messaggi
Scusa ma sono ancora un po' ignorantello su sql... Intendi dire indicizzare la colonna country_initials o creare qualcos'altro a parte?
thx
la like rallenta molto le query, cerca di sostituirla con una =
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 10:28   #15
cipi
Senior Member
 
L'Avatar di cipi
 
Iscritto dal: May 2002
Città: udine
Messaggi: 546
Quote:
Originariamente inviato da thebol Guarda i messaggi
la like rallenta molto le query, cerca di sostituirla con una =
ok, thx.
__________________
a chi non piace il vino... dio neghi anche l'acqua!
DELL Latitude E4300, iPhone 6
cipi è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 20:28   #16
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
non è che con LIKE usi qualche wildcard?
in questo caso gli indici non verrebbero usati.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2007, 09:08   #17
cipi
Senior Member
 
L'Avatar di cipi
 
Iscritto dal: May 2002
Città: udine
Messaggi: 546
no, nessuna wildcard. Tra l'altro, per la cronaca, ho lanciato due query: una con "valore = 'IT'" e l'altra con "valore LIKE 'IT'" e, sorpresa delle sorprese, ci hanno messo lo stesso tempo.
Comunque il problema non stava li... Ho deciso di studiare bene l'architettura del db; dal mega tabellone di 40e6 righe creerò qualche decina di tabelle da usare a seconda dei casi... Unico modo per ottimizzare, credo.
Attendo altri consigli.
__________________
a chi non piace il vino... dio neghi anche l'acqua!
DELL Latitude E4300, iPhone 6
cipi è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2007, 09:10   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Probabilmente perché il like senza wildcard viene tradotto con l'uguale...
Guarda anche fra le impostazioni di configurazione di mysql...magari puoi ottimizzare qualcosa anche in quel modo...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2007, 10:03   #19
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da cionci Guarda i messaggi
Probabilmente perché il like senza wildcard viene tradotto con l'uguale...

è esatto.
mi sembra strano però che una ricerca indicizzata, anche su una tabella enorme, impieghi minuti.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2007, 10:06   #20
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Per curiosità: che tipo di tabelle hai creato ? MyISAM o InnoDB ? E' MySQL 5 ?
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Android Auto, il nuovo lettore porta in ...
I nuovi MacBook con display OLED potrebb...
Windows 11: l'aggiornamento KB5124010 fa...
iPhone Duo, la pellicola protettiva del ...
Memorie più costose, NVIDIA aumen...
TSMC potrebbe affiancare Intel nel proge...
Windows 11, un solo simbolo può risparmi...
Niente cloud, niente abbonamenti, niente...
Prime o meno, Amazon è piena di o...
Kindle in offerta: e-reader base a 89€ e...
Hackerato l'account ufficiale Microsoft ...
Tutti i dispositivi Ring: videocamere 2K...
Memorie HBM, la domanda si concentra su ...
Dash cam 70mai 4K da 74,99€: A800 Nano, ...
Nuovi rincari da Fastweb: l'operatore ha...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:08.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v