下面由golang教學專欄跟大家介紹關於關於關於關於關於關於關於Go SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用比較(附網路抓包) ,希望對需要的朋友有幫助!
關於關於關於關於關於關於Go SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) 附帶的database/sql 庫可以與任何關係資料庫進行對話. 為了抽象連結到資料庫以及管理連接池的一些底層複雜性, 暴露的APIs 比實際預期要多一點. 最終導致了一些關於如何使用這些APIs 的想像.
因此, 我將嘗試分析一下使用之前已知的主要API 的行為.
我在主機的一個虛擬機器(ubuntu) 和一個mysql 伺服器上運行的關於關於關於關於關於關於Go SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) SQL中的Query、Exec和Prepare使用對比(附網路抓包) 應用程式進行了實驗.
## Query tried: insert into items (name, price, description) values ('brownie',240,'sizzling')
select 時都應該是始終使用db.Query, 並且我們絕不應該護理Query 返回的rows, 而應對其進行迭代(否則我們會洩露數據庫鏈接)
執行Query(query) 將不使用準備好的語句(可參閱下面的wireshark 擷取內容)
##查看wireshark 捕獲(query)
執行#Query(queryTemplate, params) 將在幕後使用準備好的語句
每當我們想要執行insert 或update 或delete 時都應該要永遠使用db.Exec
.執行Exec(query)
不會使用預備語句, 因此對SQL Server 的TCP 呼叫更少#執行Exec(queryTemplate, params)
將在幕後使用預備語句, 因此對SQL Server 的TCP 呼叫會多一些.希望上述內容可以闡述清楚, 我們應該何時使用預備語句以及如何規避它們.
Hopefully the points above clarify, when are prepared statements invoked and how we can avoid them.
以上是關於Go SQL中的Query、Exec和Prepare使用對比(附網路抓包)的詳細內容。更多資訊請關注PHP中文網其他相關文章!