記一次mongo資料庫CPU佔用率過高的問題

2021-08-29 15:55:11 字數 720 閱讀 7941

早上收到了一封預警郵件

檢視監控,cpu使用率過高,這種情況百分之95都是**問題。例項規格公升級是不用公升級的。

db.currentop()

查詢正在執行的命令

查詢secs_running 執行時間長的語句。

發現有乙個skip *** limit 10 的語句在執行。

問詢得知是新上的跑批功能,

在資料量比較大的表裡,skip過大會極大消耗資料庫資源

skip是通過一條一條計算定位到目標資料位置的。

於是使用db.killop() kill調對應執行。

發現不僅昨天的跑批資料再跑,前天的也在執行。

關閉tomcat,重啟(這時要注意,如果tomcat裡的應用有在整執行的執行緒,預設關閉tomcat不會停止改執行緒)。停止對應執行緒,cpu占用情況恢復。

不能用傳統的skip limit來做,使用where(sql)或find條件(nosql)定位目標資料

在準確性要求不是很高的分頁裡,通過增加查詢條件(時間、自增id等)達到定位到目標資料的功能。

通過控制返回字段減少讀取耗時

無論是sql還是nosql都需要這樣做。

記一次資料遷移 mongo到mysql

工作中有時會遇到資料庫遷移的問題,如果是使用相同資料庫的話,遷移方法比較簡單,例如mysql資料庫的遷移 1 備份資料,使用mysqldump命令 mysqldump u username p password database backup.sql2 還原資料 mysql u username p...

記一次資料庫的實戰

話不多說 直接開始 開始我們的敲 的工程吧 首先匯入標頭檔案 import tkinter import tkinter.messagebox import pandas as pd import numpy as np import matplotlib.pyplot as plt from sk...

記一次MySQL資料庫crash事件

mysql8.0資料庫最近一次不知道怎麼回事,突然啟動不了,如下提示 mysql daemon failed to start 日誌如下 網上也找了很多資料,但都處理不了 因為本人安裝資料庫習慣將安裝好的資料庫移到移到其他目錄,所以做了乙個操作,用原來的覆蓋現有的檔案 左邊是原始資料庫檔案,右邊是移...