第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mysqli_result 是否需要活動連接來查找結(jié)果?

mysqli_result 是否需要活動連接來查找結(jié)果?

PHP
手掌心 2023-07-08 22:13:43
我們注意到,對 API 端點的調(diào)用通常有多個重復的 MySQL 語句查詢SELECT(有時是數(shù)百個)。因此,我們決定創(chuàng)建一個哈希圖來存儲 mysqli_result并檢查給定的查詢是否已經(jīng)完成并返回保存在地圖中的結(jié)果。我的問題是:是否mysqli_result維護對我們連接的引用?這實際上會幫助我們避免數(shù)據(jù)庫因已經(jīng)不必要地請求的查詢而超載嗎?如果mysqli_result太大,我們的進程的內(nèi)存是否會溢出fpm?我基本上想知道什么方法更好:對于查詢 A,mysqli_result每次需要時重用對象;每次需要時重做查詢 A。
查看完整描述

1 回答

?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

mysqli_result()mysqli從 MySQL 獲取結(jié)果后,既不需要連接到 MySQL,也不需要對象。


注意:以上內(nèi)容僅適用于緩沖查詢。如果您使用無緩沖的結(jié)果集,則mysqli_result需要打開 mysqli 連接來獲取數(shù)據(jù),否則您將收到一條錯誤消息:


PHP 警告:mysqli_result::fetch_all():讀取行時出錯...


但是,只有在使用無緩沖查詢時關(guān)閉連接時,才會出現(xiàn)此錯誤消息。例如


$res = $mysqli->query('SELECT id FROM Users LIMIT 1', MYSQLI_USE_RESULT);

$mysqli->close();

$res->fetch_all();

盡管mysqli_result在創(chuàng)建它的實例時需要有效的連接,但它只需要該連接來獲取數(shù)據(jù)。中的第二個參數(shù)用于mysqli_result::__construct()決定結(jié)果集是應該在 PHP 中緩沖還是存儲在 MySQL 服務器上并逐行獲取。當您創(chuàng)建 的實例時,mysqli_result需要將 的實例mysqli作為第一個參數(shù)傳遞。


// Execute query on MySQL server

$res = $mysqli->real_query('SELECT id FROM Users LIMIT 1');

// Create the result object.?

// The second argument can be MYSQLI_STORE_RESULT for buffered result or MYSQLI_USE_RESULT for unbuffered.

$res = new mysqli_result($mysqli, MYSQLI_STORE_RESULT);


// If MYSQLI_STORE_RESULT was used then you can close mysqli here.

unset($mysqli); // or $mysqli->close(); or both

$data = $res->fetch_all();


// If MYSQLI_USE_RESULT was used then you can't close mysqli yet.

// unset($mysqli);

$data = $res->fetch_all();

SQL 查詢的緩沖是一項相當復雜的任務,最好避免重復調(diào)用,而不是實現(xiàn)緩存。SELECT嘗試重構(gòu)您的代碼,以便在腳本執(zhí)行期間不會多次調(diào)用相同的查詢。

還有一個預制的解決方案,盡管不是很受歡迎。Mysqlnd查詢結(jié)果緩存插件

一如既往地記?。?/p>

過早的優(yōu)化是萬惡之源


查看完整回答
反對 回復 2023-07-08
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號