5

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

IE。

max_allowed_packet长度而言,以下内容是否相同?:

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

如果它们相同,我如何以编程方式知道 MySQL 认为查询需要多长时间?

4

2 回答 2

0

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

于 2013-01-02T14:52:36.603 回答
0

不,空格与max_allowed_packet服务器变量无关。正如您可以检查机器上的 MySQL 客户端将接收到的字符串转换为正确的数据类型一样,同时它会删除额外的无关空格,您的 MySQL 连接器也是如此。

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

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

去检查

  • 使用 WIRESHARK,捕获 mysql 数据包。

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

于 2013-01-03T05:46:59.833 回答