国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 江油市| 乳山市| 右玉县| 武威市| 陈巴尔虎旗| 洛浦县| 锦州市| 康保县| 克拉玛依市| 玉田县| 措勤县| 蚌埠市| 萨嘎县| 彩票| 静海县| 杂多县| 嘉义县| 阆中市| 封开县| 北碚区| 大足县| 和林格尔县| 固始县| 望江县| 怀柔区| 大悟县| 秦皇岛市| 西林县| 温宿县| 稷山县| 龙海市| 麟游县| 白玉县| 河北省| 柯坪县| 疏勒县| 宜兴市| 法库县| 邢台县| 许昌县| 广宗县|