【ITOO】--SQL資料庫優化:切割、資料庫連線池
上篇講到了考試過程中,開發人員需要關注cpu和記憶體。sql日誌也不容忽視,sql日誌中顯示了資料庫作業系統的報錯日誌,給排錯提供了很大的便利。
考試的資料庫中寫入了一些監聽死鎖和當前最耗資源語句的SQL語句。可以及時的監控死鎖和了解當前考試進行到哪一步,是抽題,還是答題,還是交卷。
其中,聽到了兩個詞:切割、資料庫連線池。
後來查了一下,發現這兩種方法都可以從不同的程度上對資料庫的效能進行優化。
一、切割
橫向切割:
就是把行分類,常用的兩種是按照時間、索引劃分。時間劃分:比如5年的歷史資料,根據二八定律,1年的資料可能就足夠滿足大部分的業務需求,所以單獨的把1年的資料拿出。這樣查詢起來效率會更高。索引劃分:比如部門編號,各個車間只儲存自己車間的零件資訊,把各個車間的資訊分成單獨的表更加方便查詢。
縱向切割:
就是所謂的列切割。大資料的時候,列的個數直接影響到存取效果。
例項分割:
就是把共同的業務部分抽象,分別儲存在不同的資料庫中。例如賬戶資料庫(儲存使用者資訊)、日誌資料庫(儲存監測資料)……
例項物理儲存分割:
大資料的時候,放到不同的伺服器上統計資訊,可以通過分散式計算,大大提高運算速度。
二、資料庫連線池
顧名思義,就是盛放資料庫連線的池子,擁有分配、管理、釋放資料庫連線的能力。
具體就是初始化的時候,建立一定量的資料庫連線放到連線池中,使用者訪問資料庫的時候,無需建立新的連線,直接從連線池中拿就可以了,用完了再放回去。就像公共汽車似的,下車了,別人還可以接著來。30個座位,肯定能保證2個人在用,汽車司機和售票員,這個是最小連線數;來50個人,車只能放下30個,30就是最大連線數。剩下的幾個人就只能排隊等下一班車了。
好處:
資料庫連線是一種關鍵的昂貴的有效的資源,資料庫連線池增加了系統的伸縮性和健壯性。很少改動,就可以實現高吞吐量和低延遲和高效能。釋放時間>最大空閒時間,容易造成資料庫連線遺漏,連線池的接力賽很好的避免了這一問題。
三、總結
學習就是把理論應用於實踐,希望以後做系統能把自己學到的理論知識很好的應用到實踐當中,加油!
相關文章
- 資料庫連線池資料庫
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 資料庫連線池原理資料庫
- Proxool資料庫連線池資料庫
- JAVA資料庫連線池Java資料庫
- Flask資料庫連線池Flask資料庫
- PG 資料庫連線池寫法優化一例資料庫優化
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- python資料庫連線池Python資料庫
- 手寫資料庫連線池資料庫
- 瞭解資料庫連線池資料庫
- 資料庫連線池的理解資料庫
- 資料庫連線池的使用資料庫
- 資料庫連線池淺析資料庫
- WASCE的資料庫連線池資料庫
- JNDI配置資料庫連線池資料庫
- PROXOOL資料庫連線池使用資料庫
- 關於資料庫連線池資料庫
- .net 資料庫連線池配置資料庫
- JDBC、JDBC框架、資料庫事務、資料庫連線池JDBC框架資料庫
- 資料庫優化SQL資料庫優化SQL
- 【資料庫】查詢優化之子連線優化資料庫優化
- 資料庫優化 - SQL優化資料庫優化SQL
- java連線sql資料庫JavaSQL資料庫
- MySql資料庫連線池專題MySql資料庫
- JavaWeb之事務&資料庫連線池JavaWeb資料庫
- mysql資料庫連線池配置教程MySql資料庫
- Python資料庫連線池DButilsPython資料庫
- 聊聊資料庫連線池 Druid資料庫UI
- JDBC資料庫連線池實現JDBC資料庫
- 資料庫連線池的工作原理資料庫
- 第 67 期 Go database/sql 資料庫連線池分析GoDatabaseSQL資料庫
- MYSQL資料庫------SQL優化MySql資料庫優化
- 資料庫及SQL優化資料庫SQL優化
- 請關掉你的資料庫連線!並且請使用資料庫連線池資料庫
- SQL資料庫連線語句SQL資料庫
- 帶你進入資料庫連線池資料庫