mysql 結果集 MySQL結果集處理

2021-10-17 11:33:23 字數 713 閱讀 3816

問題:

1. mysql對查詢的結果集如果返回,一次性還是每條?

2. 客戶端如何接收結果集?

1. 對於有返回結果集的查詢,server端和client端互動的資料報由以下組成:

p1:meta data packet

p2:rows packet

pn-1: rows packet

pn:eof or error packet

2. 對於client的c api,存在兩種方式:

1. mysql_use_result: 初始化結果集獲取,但並不實際的讀取結果集到本地

2. mysql_store_result:獲取全部結果集到本地, 如果結果集比較大,會占用大量記憶體

3. 對於server層,是如何處理資料的呢?

其實server並沒有做太多,讀取符合條件的記錄,然後net_write。那如何client沒有及時fetch,這一系列的擁塞如何控制?

結論:全部交由tcp/ip協議棧進行控制,如下圖:

擁塞控制:依賴tcp/ip協議棧的滑動視窗,如果client端的資料沒有及時從緩衝fetch到使用者態記憶體中,server端的資料傳送就會受到影響。

有序性: tcp保證資料報在client端組裝成和server傳送一致順序返回給client。

mysql 結果集換頁 MySQL 按結果集分頁

備註 測試資料庫版本為mysql 8.0 一.需求 給結果集分頁或滾動顯示整個結果集 二.解決方案 在sql中,由於沒有 第乙個 最後乙個 及 下乙個 的概念,所以必須對要處理的行按某種方式排序,只有如此,才會準確地返回一定範圍內記錄。mysql limit offset解決方案 offset表示跳...

mysql查詢結果翻轉 如何把sql結果集翻轉

我用的是sql 請教如何把sql結果集翻轉?如下一張表 checkinout 顯示員工簽到,簽退的考勤表,checktype 考勤型別 i 表示簽到,o 表示簽退 timeflag 4表示上午,5表示下午 checktime 簽到,籤 userid checktype checktime timef...

利用mysql游標迴圈結果集

很多時候自己新增測試資料會用到mysql程式設計,其中儲存過程就非常的重要,所以在這裡寫乙個返回使用者id號用逗號拼接的例子 現在發現mysql完全可以程式設計,一門徹底的程式語言,資料型別還是強型別的,我喜歡 use test delimiter create procedure pro8 out...