Domanda

Sono uno sviluppatore e sto affrontando un problema mentre gestisco la tabella che ha una grande quantità di record.

Sto eseguendo un lavoro cron per riempire i dati nella tabella primaria (Tabella A) che ha 5-6 colonne e circa 4.00.000 a 5,00.000 righe e quindi creando un'altra tabella e i dati in questa tabella continuerebbero ad aumentare nel tempo .

La tabella A contiene i dati grezzi e la mia tabella di output è la tabella B

Il mio script Cron tronca i dati nella tabella B quindi inserisce i dati utilizzando Select query

TRUNCATE TABLE_B; 

INSERT INTO TABLE_B (field1, field2) 
SELECT DISTINCT(t1.field2), t2.field2 
FROM TABLE_A AS t1 
INNER JOIN TABLE_A t2 ON t2.field1=t1.field1 
WHERE t1.field2 <> t2.field2 
GROUP BY t1.field2, t2.field2 
ORDER BY COUNT(t1.field2) DESC; 

Sopra la query selezionata produce circa 1.50.000 a 2.00.000 righe

Ora ci vuole troppo tempo per popolare la tabella B e nel frattempo se la mia applicazione tenta di accedere alla tabella B, selezionare la query fallisce

Spiegare i risultati delle query che segue:

'1','PRIMARY','T1','ALL','field1_index',NULL,NULL,NULL,'431743','Using temporary;Using filesort' 
'1','PRIMARY','T2','ref','field1_index','field1_index','767','DBNAME.T1.field1','1','Using where' 

Qualcuno può aiutarmi a migliorare questo processo o guidarmi alternative per il processo di cui sopra?

Grazie

Suketu

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top