2013-01-01 13 views
5

Se aggiungo uno ; alla mia query MySQL, questo vale per la lunghezza max_allowed_packet? Che dire di aggiungere spazi? Questo conta contro di esso? MySQL aggiunge automaticamente un ; se non è presente?cosa prende in considerazione max_allowed_packet?

ie.

sono le seguenti lo stesso nella misura in cui max_allowed_packet lunghezza è interessato ?:

INSERT INTO table_name (col_name) VALUES (1) , (2); 
INSERT INTO table_name (col_name) VALUES (1),(2) 

Se sono le stesse come posso programmazione sapere per quanto tempo MySQL considera la query di essere?

+1

Un breve test che puoi fare è abbassare il limite a 1K per esempio e creare una query più grande di questa. Nella query successiva, aggiungi spazi o;, nel log MySQL avrai la dimensione del pacchetto corrente. –

risposta

0

No, lo spazio bianco non interessa per max_allowed_packet, che è una variabile del server. Come si può verificare, il client MySQL sulla macchina converte la stringa ricevuta in un tipo di dati appropriato, mentre lo fa rimuove gli spazi bianchi extra, così come il tuo MySQL Connector.

che significa sia le query sono trattati come lo stesso

Quindi, si dovrebbe solo essere preoccupato per la leggibilità della query SQL e dimenticare gli spazi bianchi.

per controllare

  • usando Wireshark, catturare i pacchetti MySQL.

  • Se interessati alle immersioni profonde. Passare attraverso il codice sorgente per MySQL Client o MySQL Connector che si sta utilizzando.

0

Il max_allowed_packet specifica la lunghezza massima di un'istruzione SQL da eseguire dopo che è stata ricevuta e preelaborata dal server; ciò include, ad esempio, la creazione dell'elenco di valori inseriti (se presenti). Quindi, a quel punto, non ci sono spazi finali e quel genere di cose. Non sono sicuro del ";", ma la mia ipotesi migliore è che, se non è presente, viene aggiunto al momento dell'elaborazione preliminare dell'istruzione.

Problemi correlati