MySQL e 6.500.000 di records

venerdì 22 aprile 2005 - 13.59

LeonDom Profilo | Senior Member

Ciao Ragazzi,

ho questo tipo di problema:

ho una tabella di MySQL 4.10 che contiene 5 campi e la bellezza di più di 6.500.000 records.
Non avevo mai lavorato con un'infinità di dati così.

Ho utilizzito tutto quello che potevo per "normalizzare" la tabella, ma i campi che ci sono sono indispensabili e mi servono tutti, ricerco per l'indice... ma quando faccio una query dalla intranet ci mette dai 25 ai 30 secondi, immagino sia normale vista la mole di dati.

Voi avete qualche consiglio da darmi per velocizzare le ricerche?

trinity Profilo | Guru

Ovviamente la mole di dati è bella sostanziosa ma per velocizzare devi solo giocare con gli indici, ed effettuare una giusta select in sql...

ciao
Fabio

LeonDom Profilo | Senior Member

Ciao Trinity è un po' che non vedevo le tue risposte...

magari fosse così facile. naturalmente è una tabella InnoDB, è indicizzato e la stringa che gli passo è semplicissima (ricerco per data)... ma nonostante tutto il "record sul giro" è di 21 secondi netti...
purtroppo è la quantità di dati che un po' frena MySQL inoltre calcolando che è una intranet quindi una WebForm ci mette un po' di più....

L'unica soluzione che mi è rimasta è suddividere la tabella per data... ma diventerebbe tutto più complicato...

Grazie cmq...

LeonDom

trinity Profilo | Guru

Ciao LeonDom,
in questo periodo sono stato molto impegnato con la mia società, portare avanti una ditta di informatica richiede tempo e sacrifici, per quanto riguarda il tuo problema non è che puoi indicizzare anche un'altra colonna della tabella in modo da essere + selettivo possibile..

Ciao
Fabio

LeonDom Profilo | Senior Member

Già provato... ma non dispero, in fondo credo sia normale per una quantità così vasta di dati...

Grazie Cmq... Buon Lavoro

trinity Profilo | Guru

sostanzialmente si, cmq se ti può essere di conforto a tempo perso provo anche io a caricare e leggere in maniere sequenziale un numero di record come il tuo e ti dirò il tempo di impiego. Cmq mi sono dimenticato di chiederti come effettui la connessione al db con l'ODBC? Se si prova il mysqlconnector è più veloce

Ciao
Fabio

LeonDom Profilo | Senior Member

Già lo utilizzo da parecchio tempo. Devo dire che è molto veloce perché 6.500.000 di record sono 6.500.000. La cosa che più mi preoccupa è che con l'andare del tempo saranno sempre di più, viaggiamo ad una media di 6.000/10.000 al giorno.
Alla fine sarà costretto a dividerli per data, in modo da consentire a tutti gli utenti di visualizzare solo dei range di date che vogliono.

Tks a lot.

trinity Profilo | Guru

Ma alla fine funziona così, programmi seri e database costruiti correttamente si poggiano proprio su un'ottima gestione degli indici, di solito prima di realizzare un struttura di database bisogna fare un'analisi accurata e vedere ed immaginare tutti i possibili problemi che nel corso del tempo posso nascere, cmq potresti anche fare una tabella storica ovviamente per data e su di essafai accedere solo gli utenti che desiderano vedere dati che risalgono a date molto vecchie..

Ciao
Fabio

SuperSasch2004 Profilo | Newbie

Ciao devi agire sul file my.ini ... più spazio dedichi sia in RAM che in memoria al Mysql e più ti gira veloce ...
ora non ricordo perbene le voci da settare ... lessi un articolo su una rivista per linux ... se la ritrovo a casa ti scansiono l'articolo e te lo mando ...

trinity Profilo | Guru

Ho fatto un pò di ricerche sulla rete ho trovato interessante alcuni post che parlano di velocizzare query in mysql di vedere EXPLAIN nel manuale di MySQL

Ciao
Fabio

trinity Profilo | Guru

Ho fatto un pò di ricerche sulla rete ho trovato interessante alcuni post che parlano di velocizzare query in mysql di vedere EXPLAIN nel manuale di MySQL

Ciao
Fabio
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5