一個併發SQL資料庫卡主了
首先說明這個問題不能怪資料庫。上週遇到一個事情,大家都在討論一個問題,我看沒人@我,我也沒管。直到有人說,讓我去看看她那裡為什麼查詢的比較慢。在處理過程中才發現這個資料庫上活動會話有80多個。難怪慢。背景是這個MySQL記憶體僅4G。(為什麼這麼小,我回答不了)
看到紅黃框一共10句,是一模一樣的SQL,對一個log表全表排序。其中紅框的兩句幾乎是同一時刻。後面的估計是執行了沒反應繼續點選。而藍框中的SQL是對這個log表全表分組,其實性質一樣。
查一下現在事務情況,出乎意料。以上的全表排序都卡主了,那麼問題很明顯了。
先處理這些,kill這些執行了幾個小時的SQL。過來幾秒以後,整個資料庫立刻恢復正常了。其他問題在這裡不方便多說了。只是好奇這個全表排序的為什麼有事務?
單獨找一個資料庫,用MySQL預設的模式(自動提交),進行了幾個大表查詢,然後information.innodb_trx。發現沒有事務。推斷那時候一定是開啟事務了。(故障恢復第一要務是先恢復,沒有辦法追溯是次要的。由於之前設定不完善,很多資訊沒有)這次就只能粗淺的認為查詢開了事務,因為這個表600多M,10併發次查詢,而記憶體就只有4G。加上磁碟的IO效能也不行。諸多因素在一起,然後併發執行資料庫處理不了。透過殺掉長會話得以解決。
這個配置,這樣用,換哪個資料庫可能或多或少都有點問題。也不排除個別資料庫能抗過去的。還是使用方式方法。
道理千萬條,安全第一條。資料庫幾百種,規範第一條。開發不規範,運維兩行淚
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2916455/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料庫】併發控制資料庫
- 一句SQL,我的資料庫crash了SQL資料庫
- 建立一個SQL測試資料庫 - 消費者資料庫SQL資料庫
- 資料庫併發問題資料庫
- 用資料泵併發匯入資料的一個案例
- 使用SQL語句將資料庫中的兩個表合併成一張表SQL資料庫
- 資料併發性和一致性——資料庫概念資料庫
- MYSQL資料庫主從同步(一主一從)MySql資料庫主從同步
- 高併發架構系列:資料庫主從同步的3種方案架構資料庫主從同步
- 【mysql】mysql的資料庫主從(一主一從)MySql資料庫
- Sql Server 匯入另一個資料庫中的表資料SQLServer資料庫
- 併發查詢資料庫問題資料庫
- SQL Server一個表新增資料,引發另一個表更新資料 的一個簡單觸發器例子SQLServer觸發器
- MS SQL資料庫中合併複製詳解SQL資料庫
- spring 對資料庫的併發操作Spring資料庫
- 資料庫併發控制幾隻——事務資料庫
- 求助:資料庫併發訪問問題資料庫
- 今天修復資料寫了個pl/sqlSQL
- 一個資料庫死鎖竟然被測試發現了,這你敢信資料庫
- Go的又一個分散式資料庫開源了Go分散式資料庫
- SQL Server資料庫檢視一個資料表各列的註釋SQLServer資料庫
- 最近恢復了一個8T資料量的資料庫資料庫
- gluesql/gluesql:一個用Rust編寫的SQL資料庫引擎庫包SQLRust資料庫
- 大資料量高併發的資料庫優化大資料資料庫優化
- MS SQL Server資料庫中合併複製詳解SQLServer資料庫
- MySQL從庫卡主了--讀寫分離也不能亂讀MySql
- 資料庫併發如何讓資料操作序列化資料庫
- SQL Server無法刪除資料庫 "xxx",因為該資料庫當前正在使用(如何刪除一個Sql Server資料庫)SQLServer資料庫
- SQL資料庫觸發器例項SQL資料庫觸發器
- 使用SQL語句從資料庫一個表中隨機獲取資料SQL資料庫隨機
- SQL資料庫SQL資料庫
- 資料庫高併發解決方法總結資料庫
- MySQL資料庫高併發最佳化配置MySql資料庫
- 資料庫系列:高併發下的資料欄位變更資料庫
- SQL2K資料庫開發四之刪除資料庫SQL資料庫
- SQL Server 資料庫基本記錄(一)SQLServer資料庫
- 資料庫的一些操作(Sql)資料庫SQL
- 一個 Babelfish ,看懂雲資料庫的發展方向Babel資料庫