連線數量超過max_connections時,新來的連線會被拒絕。這時有一些臨時解決辦法(注意這些辦法都是有損的)
kill掉那些占用連線但未進行事務操作的執行緒,注意如果資料庫端主動斷開連線,客戶端是不能立刻感知的。
讓資料庫建立連線時跳過許可權驗證階段,重啟資料庫,並使用–skip-grant-tables
引數啟動,注意這樣對於存在外網ip的資料庫是十分危險的
索引沒設計好
這時可以用online ddl增加索引。比較理想的是能夠在備庫先執行。假設你現在的服務是一主一備,主庫a、備庫b,這個方案的大致流程是這樣的:
在備庫b上執行set sql_log_bin=off
,也就是不寫binlog,然後執行alter table
語句加上索引;
執行主備切換;
這時候主庫是b,備庫是a。在a上執行set sql_log_bin=off
,然後執行alter table
語句加上索引。
sql語句沒設計好
可以通過query_rewrite,增加規則使得資料庫語句強行改寫
索引選錯了
用force index
mysql實戰45講
MySQL臨時提高效能方案
參考自 極客時間 22 mysql有哪些 飲鴆止渴 提高效能的方法?短連線 連線到資料庫執行很少sql後就被斷開。在業務高峰期,可能會出現連線數暴漲的問題。影響 mysql建立連線的成本很高,除了正常的網路連線三次握手外,還需要做登入許可權判斷和獲得這個連線的資料讀寫許可權。如何識別不工作執行緒?首...
資料庫索引為何能提高效能
本文只針對mysql進行相關方面的說明。首先我要問,資料索引是有序無序的?答 當然是有序的了。再問,乙個sql語句可以有幾個索引?你先別往下看結果,你這想下,可以使用幾個索引呢?正確的是 1個 有人肯定會疑惑。對,當初我接受這個概念也是挺納悶的,後來在實際中得到了解答。那麼,你需自己找答案了。在有序...
Redis高效能資料庫
redis高效能資料庫 redis 本質上是乙個非關係型資料庫,採用鍵值的方式記錄資料,由於其獨特的執行模式和資料儲存模式,在作用上通常可以用來當做關係型資料庫的快取來使用,從而提高資料查詢效率 redis最大特點 執行速度很快 原因 1 redis使用c語言開發,和作業系統的相容性更強,執行效率更...