注意:
1.資料庫連線受限於作業系統的的檔案描述符(file descriptor ,fd) ,源於tcp連線
2.單個程序預設1024個fd,可適當調整,但是會消耗效能,有降低應用吞吐率的風險。
3.一般可以把連線池的最大連線數設定在30-50左右。一味的加大連線數是治標不治本的做法,通常是因為出現的很慢的sql,需要建立索引以及優化sql語句,優化資料模型或應用邏輯的設計。 盡量避免秒級的sql,保持在100ms內。
常見優化方案
1.建立高效合適的索引
2.排查連線資源是否顯式關閉(特別注意流式計算或threadlocal中使用資料庫連線的地方)
3.合併短的請求
4.合理拆分多個表join的sql,盡量避免超過3個表的join,會產生巨量的笛卡爾積,另外確保關聯的字段有索引。
5.臨時表的使用
6.應用層優化。資料結構,邏輯的調整,併發多執行緒的改造等
7.考慮使用其他資料庫。不同的業務場景需要可能會產生資料量不在乙個量級上,為了滿足效能問題,可以考慮使用nosql。
資料庫連線池 Redis連線池
基本原理 在內部物件池中,維護一定數量的資料庫連線,並對外暴露資料庫連線的獲取和返回方法。如外部使用者可通過getconnection方法獲取資料庫連線,使用完畢後再通過releaseconnection方法將連線返回,注意此時的連線並沒有關閉,而是由連線池管理器 並為下一次使用做好準備。2.作用 ...
資料庫連線池
實現資料連線池,讓系統有更高有執行效率 using system using system.data using system.data.sqlclient using system.collections using system.threading public class dataaccess...
資料庫連線池
資料庫連線池概述 資料庫連線是一種關鍵的有限的昂貴的資源,這一點在多使用者的網頁應用程式中體現得尤為突出。對資料庫連線的管理能顯著影響到整個應用程式的伸縮性和健壯性,影響到程式的效能指標。資料庫連線池正是針對這個問題提出來的。資料庫連線池負責分配 管理和釋放資料庫連線,它允許應用程式重複使用乙個現有...