故障案例 多表join引發磁碟空間撐爆

2021-07-12 06:41:27 字數 353 閱讀 8150

現象:磁碟空間使用率的監控曲線有乙個非常陡峭的峰值,達到90%後瞬間下滑

問題分析步驟:檢視那段時間的慢查詢記錄,定位到是乙個多表的join操作(ps,mysql.slow_log表裡的start_time列指的是sql執行結束的時間)

根據sql的解析計畫可知中間結果集非常大,超過了tmp_table_size大小設定,於是在磁碟空間上建立myisam磁碟臨時表,重新復現了一遍,確實在tmpdir引數定義的路徑下,空間**非常厲害

處理方法

優化sql,具體這個sql怎麼優化,不做討論

lvm講解,磁碟故障小案例

lvm是 logical volume manager 邏輯卷管理 的簡寫,它是linux環境下對磁碟分割槽進行管理的一種機制 lvm可以方便的讓我們對分割槽擴容或縮容,但是目前運用的並不是很多,因為它的侷限性較大,安全性較低,操作起來比較複雜等因素,現在很多公司不再採用這種分割槽管理工具。其工作原...

LVM講解 磁碟故障小案例

1 lvm講解。假如有兩塊硬碟a和b,a劃分兩個分割槽,b劃分乙個分割槽,將這三個分割槽組成物理卷,在物理卷的基礎上組成了乙個捲組。捲組實際上物理卷的乙個集合。在卷基礎上組的基礎上劃分邏輯卷,最後在邏輯卷的基礎上格式化然後掛載到系統中。1 準備磁碟分割槽。fdisk dev sdb n建立三個新分割...

查詢去除空值 SQL多表查詢 join表聯結

在之前的學習和練習中,所有的操作都是在一張表中進行操作,實際工作中,我們期望得到的資料往往分散在不同的表中,今天我將帶大家一起學會從多張表中獲取資料。表的加法在sql語句中用union表示,是按行將表中資料合併到一起。重複的資料只保留乙個。若想要保留表中重複的行,則使用union all。如何合併兩...