国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL數(shù)據(jù)查詢太多會(huì)咋樣

2024-07-24 12:33:52
字體:
供稿:網(wǎng)友
  主機(jī)內(nèi)存只有100G,現(xiàn)在要全表掃描一個(gè)200G大表,會(huì)不會(huì)把DB主機(jī)的內(nèi)存用光?
 
  邏輯備份時(shí),可不就是做整庫掃描嗎?若這樣就會(huì)把內(nèi)存吃光,邏輯備份不是早就掛了?
 
  所以大表全表掃描,看起來應(yīng)該沒問題。這是為啥呢?
 
  全表掃描對(duì)server層的影響
 
  假設(shè),我們現(xiàn)在要對(duì)一個(gè)200G的InnoDB表db1. t,執(zhí)行一個(gè)全表掃描。當(dāng)然,你要把掃描結(jié)果保存在客戶端,會(huì)使用類似這樣的命令:
 
  mysql -h$host -P$port -u$user -p$pwd -e
   "select * from db1.t" > $target_file
  InnoDB數(shù)據(jù)保存在主鍵索引上,所以全表掃描實(shí)際上是直接掃描表t的主鍵索引。這條查詢語句由于沒有其他判斷條件,所以查到的每一行都可以直接放到結(jié)果集,然后返回給客戶端。
 
  可見:
 
  一個(gè)查詢?cè)诎l(fā)送過程中,占用的MySQL內(nèi)部的內(nèi)存最大就是**「net_buffer_length」**這么大,不會(huì)達(dá)到200G
  socket send buffer 也不可能達(dá)到200G(默認(rèn)定義/proc/sys/net/core/wmem_default),若socket send buffer被寫滿,就會(huì)暫停讀數(shù)據(jù)的流程
  所以MySQL其實(shí)是“邊讀邊發(fā)”。這意味著,若客戶端接收得慢,會(huì)導(dǎo)致MySQL服務(wù)端由于結(jié)果發(fā)不出去,這個(gè)事務(wù)的執(zhí)行時(shí)間變長(zhǎng)。
 
  比如下面這個(gè)狀態(tài),就是當(dāng)客戶端不讀**「socket receive buffer」**內(nèi)容時(shí),在服務(wù)端show processlist看到的結(jié)果。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌拉特中旗| 集安市| 广东省| 泾阳县| 贡山| 云林县| 和静县| 文成县| 得荣县| 城口县| 南木林县| 沾益县| 黔南| 延安市| 柘荣县| 晋江市| 望都县| 常山县| 镇康县| 疏勒县| 原阳县| 商都县| 桃源县| 页游| 武宁县| 恩施市| 克东县| 靖安县| 措美县| 元朗区| 无极县| 南开区| 澜沧| 简阳市| 宾阳县| 烟台市| 那曲县| 项城市| 肇庆市| 伊宁市| 富源县|