一個併發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資料庫
- 高併發架構系列:資料庫主從同步的3種方案架構資料庫主從同步
- SQL Server無法刪除資料庫 "xxx",因為該資料庫當前正在使用(如何刪除一個Sql Server資料庫)SQLServer資料庫
- 【mysql】mysql的資料庫主從(一主一從)MySql資料庫
- SQL Server資料庫檢視一個資料表各列的註釋SQLServer資料庫
- SQL資料庫SQL資料庫
- gluesql/gluesql:一個用Rust編寫的SQL資料庫引擎庫包SQLRust資料庫
- SQL Server 資料庫基本記錄(一)SQLServer資料庫
- Go的又一個分散式資料庫開源了Go分散式資料庫
- java 資料庫程式設計(一)JDBC連線Sql Server資料庫Java資料庫程式設計JDBCSQLServer
- 一個資料庫死鎖竟然被測試發現了,這你敢信資料庫
- SQL Server資料庫怎麼找出一個表包含的頁資訊(Page)SQLServer資料庫
- 資料庫併發如何讓資料操作序列化資料庫
- oracle資料庫卡頓Oracle資料庫
- 資料庫高併發解決方法總結資料庫
- 資料庫_SQL-MongoDB資料庫SQLMongoDB
- 資料庫_SQL-PostgreSQL資料庫SQL
- 資料庫映象 (SQL Server)資料庫SQLServer
- 資料庫-SQL 語法資料庫SQL
- SQL Server資料庫安全SQLServer資料庫
- 資料庫優化SQL資料庫優化SQL
- 【資料庫】SQL語句資料庫SQL
- 資料庫系列:高併發下的資料欄位變更資料庫
- 向xxxhub發了一個資料包,發現了一些不可告人的秘密
- 【譯】資料庫基礎:用 Go 從零開始寫一個 SQL 資料庫 —— 第一部分資料庫GoSQL
- 一個 Babelfish ,看懂雲資料庫的發展方向Babel資料庫
- Linux實現MySql資料庫的主從複製(一主一從)LinuxMySql資料庫
- Sql Server 資料庫學習-常用資料庫 物件SQLServer資料庫物件
- indexedDB 資料庫主鍵Index資料庫
- 暑期自學 Day 09 | 資料庫(一)- SQL,DDL資料庫SQL
- MySQL從庫卡主了--讀寫分離也不能亂讀MySql
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 記錄一個利用資料庫引擎格式化異常sql的思路資料庫SQL
- 基於 Hyperf+ SQL Server 實現的一個簡單資料庫 curdSQLServer資料庫
- 向xxxhub發了一個資料包,發現了一些不可告人的祕密