Ho una tabella molto grande con una chiave primaria di BINARY(20)
.Ottenere il numero di righe inserite per ON DUPLICATE KEY UPDATE multiple insert?
Il tavolo ha circa 17 milioni di righe. Ogni ora un cron job tenta di inserire fino a 50.000 nuove voci in questa tabella con la sintassi ON_DUPLICATE_KEY_UPDATE
.
Ogni inserto nel cronjob è con 1000 valori (inserto multiplo). Come posso ottenere il numero di righe inserite nella tabella da questa query? Non riesco a fare il conteggio delle righe prima e dopo dato che ci sono circa 17 milioni di righe e la query è troppo costosa.
Nel mysql manuale dice per una riga inserita il numero interessata di righe è 1
e per un campo aggiornato è 2
, che significa a mio 1000 INSERT ON DUPLICATE interrogazione UPDATE KEY ho potuto avere righe interessate vanno 1.000-2.000, ma non ho modo di dire quanti record sono stati inseriti da questo numero?
Come posso superare questo?
Grazie
La mia matematica non è la migliore, non riesco a farmi girare la testa per questo lol, farò qualche test, grazie amico. – Griff
In effetti hai ragione, amico, ho salvato la mia giornata :) – Griff
Questo presuppone che otterremo 1 o 2 per ogni riga. Dai documenti MySQL: Per le istruzioni INSERT ... ON DUPLICATE KEY UPDATE, il valore delle righe interessate per riga è 1 se la riga viene inserita come una nuova riga, 2 se una riga esistente viene aggiornata e 0 se un riga esistente è impostata sui suoi valori correnti Quindi penso che se una riga esistente viene lasciata invariata, otterremo 0 e questo non funzionerà ..:/ – tomas