[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux_var] Consiglio TROPPE QUERY
Non fare una INSERT per ogni riga, raggruppale in più insert.
Se puoi farlo, per inserimenti bulk è meglio che salvi tutti i dati in
un file e poi li carichi con una singola query LOAD DATA INFILE. Dal
punto di vista del db non esiste un metodo più rapido per caricare dati
precotti.
Verifica tipo di tabelle, la configurazione di mysql, etc. La
documentazione di MySQL e/o la pagina "Stato" di phpMyAdmin forniscono
alcuni spunti da cui cominciare.
Verifica gli indici. Magari gli accessi al sito / query di lettura
stanno facendo table scans anziché usare indici, sommandoci anche il
carico in scrittura ti ammazza il sistema.
Se puoi prepara i job di scrittura (file con le righe da inserire) ed
eseguili (LOAD DATA INFILE) quando non hai grande traffico in lettura
(di notte?) sul sito.
Verifica lo stato del sistema con i soliti tool (top, vmstat, etc...) e
vedi se hai qualche problema (ad esempio, paging).
Ram, ram, ram. Ficcacene fin che ci entra sulla mainboard.
Per il momento lascerei perdere la replicazione di MySQL, tra l'altro
hai (mi par di capire) un solo thread che lavora pesante in scrittura
quindi i benefici sarebbero relativi. Piuttosto visto che il dataset è
piccolo assicurati che entri tutto in ram (metti 4 o più GiB sul
sistema). Verifica l'accesso ai dischi, dopo un minimo di priming le
letture dovrebbero stare a 0 o quasi (perché tutto arriva dalla cache in
ram).
Non avendo le specifiche del sistema (dischi, ram, cpu, cosa ci gira
sopra, quanto traffico c'è sulla parte web, quante query fa, e via
dicendo) è dura fare ipotesi più precise, ma credo che hai grandi
margini di manovra in software, a meno che il sistema non sia
brutalmente sottodimensionato.
--
Luca Lesinigo
--
Per cancellare l'iscrizione: <talking-unsubscribe at ml.linuxvar.it>
Archivi web e configurazione: http://ml.linuxvar.it/ml/