2013-01-01 2 views
5

나는 나의 MySQL의 쿼리에 ;max_allowed_packet 길이에 대한 그 수를 않는 추가하면? 공백을 추가하는 것은 어떨까요? 그게 그거야? MySQL이 자동으로 ;을 추가합니까?max_allowed_packet은 어떤 점을 고려합니까?

즉.

그들이 내가 프로그래밍 긴 MySQL은 쿼리로 간주 방법을 알 수있는 방법이 동일한 경우

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

? 관한 한 지금까지 max_allowed_packet로 길이가 동일 다음과 같다?

+1

간단한 테스트는 한도를 1K로 낮추고 이보다 큰 쿼리를 만드는 것입니다. 이후의 쿼리에서 공백이나;를 추가하면 MySQL 로그에 현재 패킷 크기가 생깁니다. –

답변

0

아니, 공백은 서버 변수입니다 max_allowed_packet에 대한 염려,이다. 컴퓨터에서 MySQL 클라이언트를 확인하면 수신 된 String을 적절한 데이터 유형으로 변환하고 추가로 신경 쓰지 않는 공백을 제거하고 MySQL 커넥터도 제거합니다.

의미 모두 쿼리 그래서 그냥 SQL 쿼리의 가독성에 대한 관심을 가져야 같은

로 취급하고, 공백을 잊지되어있다.

는, 와이어 샤크를 사용

  • 확인 MySQL의 패킷을 캡처합니다. 깊은 다이빙에 관심이있는 경우

  • . MySQL 클라이언트 또는 사용중인 MySQL Connector의 소스 코드를 살펴보십시오.

0

max_allowed_packet은 서버에서 수신 및 처리 한 후 실행될 최대 SQL 문 길이를 지정합니다. 예를 들어, 삽입 값 목록 작성 (있는 경우)이 포함됩니다. 그래서, 그때까지, 후행 공백과 그런 종류의 것들이 없습니다. 나는 ";"에 대해 확신하지 못하지만, 내 생각에 가장 좋은 추측은 그것이 없다면 진술서를 사전 처리 할 때 추가된다는 것입니다.

관련 문제