Ho un creato una tabella temporanea utilizzando il motore di memoria come segue:MySQL utente creato tabella temporanea è piena
CREATE TEMPORARY TABLE IF NOT EXISTS some_text (
id INT DEFAULT 0,
string varchar(400) DEFAULT ''
) engine = memory;
Quando inserisco righe in esso mi imbatto in un errore di # 1114 perché il tavolo è pieno. Spiega nei documenti mysql che la modifica di tmp_table_size
e max_heap_table_size
non fa nulla per aumentare la dimensione delle tabelle temporali create dall'utente, che è ciò che penso di avere qui. Come faccio a rendere questo tavolo più grande?
Mi piacerebbe essere in grado di farlo dinamicamente con una chiamata a SET, ma ho provato a impostare tmp_table_size
e max_heap_table_size
e sono entrambi ben oltre la quantità di dati che mi aspetto in questa tabella. Quindi qualcuno sa come risolvere questo errore su questo tavolo? Grazie a tutti coloro che aiutano.
Grazie Bill, Lei ha sempre chiaro consulenza MySQL. Come nota. Creo questa tabella come parte di una stored procedure. Non so se posso ancora aumentare responsabilmente 'max_heap_table_size' su tutto il mio DB. È ragionevole usare 'set max_heap_table_size = 33554432' per impostare il limite solo per la mia stored procedure, e quindi potenzialmente ripristinarlo una volta che finisce di funzionare? Grazie ancora. – usumoio
Sì, 'max_heap_table_size' può essere impostato con l'ambito della sessione (consultare http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_max_heap_table_size), in modo che tu possa apportare la modifica con impatto limitato. –
Ricevo il messaggio "pieno" anche dopo aver aumentato 'max_heap_table_size' e' tmp_table_size' in 4G! –