5

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がクエリをどのくらいの期間と見なすかをプログラムで知るにはどうすればよいですか?

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 に答える