max_allowed_pa​​cket考虑了什么?

时间:2013-01-01 20:06:58

标签: mysql sql

如果我在MySQL查询中添加;,那么这个数量是否会计入max_allowed_packet长度?添加空格怎么样?这算不算吗?如果不存在,MySQL会自动添加;吗?

max_allowed_packet长度而言,

以下是相同的?:

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

如果它们是相同的,我怎样才能以编程方式知道MySQL认为该查询有多长?

2 个答案:

答案 0 :(得分:0)

max_allowed_pa​​cket 指定在服务器接收并预处理之后要执行的SQL语句的最大长度;例如,包括创建插入值列表(如果有的话)。所以,到那个时候,没有尾随空格和那种东西。我不确定“;”,但我最好的猜测是,如果它不存在,它会在预处理你的陈述时添加。

答案 1 :(得分:0)

不,空白与max_allowed_packet无关,这是一个服务器变量。 正如您可以检查机器上的MySQL客户端将收到的字符串转换为正确的数据类型,这样做可以消除额外的无关紧要的空白,MySQL连接器也是如此。

  

这意味着两个查询都被视为相同的

所以你应该只关心SQL查询的可读性并忘记空格。

检查

  • 使用WIRESHARK捕获mysql数据包。

  • 如果对深潜有兴趣的话。浏览您正在使用的MySQL客户端或MySQL连接器的源代码。