mysql报文最大可以容纳16MB的数据,如果一次发送的数据超过16MB会被分割成多个mysql报文。
mysql报文的格式如下:
Payload
Type | Name | Description |
---|---|---|
int<3> | payload_length | Length of the payload. The number of bytes in the packet beyond the initial 4 bytes that make up the packet header. |
int<1> | sequence_id | Sequence ID |
string<var> | payload | [len=payload_length] payload of the packet |
payload_length:用前3个字节表示报文真实数据的长度(不包括最前面的4个字节:前3个字节表明真实数据的长度,第4个字节表明该报文的序列)
sequence_id:用第4个字节表示报文唯一序列号,通常来说是相邻两个报文的序列号是递增的
payload:这部分存放真实的数据内容,字节长度为payload_length指定的长度
eg:
COM_QUIT命令发送的报文如下所示:
01 00 00 00 01
payload_length为1
sequence_id为0
payload内容为01,长度为1(由payload_length指定)