PostgreSQL學習的九層寶塔
活動預告: 在即將到來的 2019 資料技術嘉年華大會上,來自 PostgreSQL 方面的主題同樣豐富多彩,既有來自雲廠商的資料庫研發成果,新版本新特性介紹,還有來自於使用者的最佳實踐。
這些主題包括來自 華為智慧資料與儲存領域總裁 周躍峰 , 阿里巴巴以及PostgreSQL社群首席佈道師的 周正中(德哥),華為GaussDB生態與標準CTO 王偉民,PostgreSQL社群核心成員 張文升,騰訊雲的技術專家 孫旭,雲和恩墨的研究員 劉偉,阿里雲的技術專家 周振興,騰訊雲技術專家 李躍森 等的主旨分享。這些專家將為大家展示 Postg reSQL 資料庫蓬勃的生命力和廣泛的資料庫生態,以及最佳應用場景。詳情:
第一層:初識PG,開闊心胸
資料庫不只有Oracle、DB2、SQLSERVER,還有PostgreSQL(簡稱PG),PG是最強大的開源資料庫,PG開源友好,學習PG可以從事DBA/應用開發/系統核心開發等工作,而且會有很大的發揮空間,使用PG可以為企業提供有效的資料庫管理,也可以自主可控、節約成本。當今職場,多懂幾個資料庫,會讓我們有更多的機會。
初識PG,主要是學習認知PG的起源發展,主要版本特性,應用領域;瞭解國際PG社群組織、資源、動態,與中國PG分會、PG社群建立聯絡,積極互動,獲取學習資源,嘗試分享,展示自我。
第二層: 安裝使用,動手操練
“安裝部署、服務管理、體系結構、初始化配置、資料庫物件管理”,這是PG的應用管理基礎,DBA要會,應用開發也要會。當然兩種角色關注重點稍有不同,譬如DBA關注架構部署、執行穩定性和高效性,而應用開發更多的是掌握資料庫物件的建立及管理。
第三層: 把握要點,提綱挈領
PG作為關係型資料庫承擔著管理企業資料的重任。功能、效能很重要,穩定性更重要,這也是作為DBA首要考慮的問題。PG資料庫發展30多年,國際、國內的眾多應用案例表明穩定性可以信賴。關注學習與穩定性相關的知識點,能夠將PG的穩定性發揮的更好:
PG穩定性要點:
-
記憶體配置
-
日誌配置
-
磁碟管理
-
併發控制
-
程式控制
-
……
PG的功能強大、繁多,可以系統化、模組化的選擇性學習。譬如PG有地理資訊資料處理功能(GIS),暫時用不到可以先放過,除非很有志趣。DBA和應用開發人員可以根據工作需要深入學習不同功能要點。
PG功能列表:
-
安全控制
-
基準測試
-
監控功能
-
審計功能
-
併發控制
-
並行處理
-
臨時表
-
觸發器
-
函式、儲存過程
-
執行計劃
-
物理連線
-
資料快取
-
物化檢視
-
分割槽表
-
主從流複製
-
邏輯複製
-
訪問外部資料
-
……
第四層:熟練操作,得心應手
學習了穩定性要點、功能列表後,PG基本可以用來服務於工作了。透過不斷的自我練習,滿足工作業務需求,會看到自己的水平會不斷的進步。
第五層: 透視功能,探究原理
PG功能點繁多,獨特的功能適用於不同的業務場景,而且隨著PG版本的更新迭代,重要的功能點也會不斷得到最佳化,無論是使用上的便捷性還是效能的增強,無不體現著原始碼核心貢獻著的智慧與追求:使PG不斷完善,更好的服務於業務。
譬如分割槽表,PG V9版本中是透過表繼承+觸發器的方式實現,因觸發器本身的限制,資料的插入效能並不高;PG V10實現了內建分割槽表,建立的分割槽實質上也是普通的表結構,從而管理分割槽方便,資料插入效率得以提高;PG V11增加雜湊分割槽、預設分割槽、支援更新分割槽鍵等,完善了分割槽的功能。
探究原理能從內部機理深入理解,面對問題也能透過現象看本質,發現問題的誘因是使用不當還是系統bug,從而能更好的處理問題。
第六層: 問題處理,效能最佳化
習得第五層是為了更好的使用PG,遇到問題可以快速定位、分析處理。處理問題需要平時多積累整理,一方面是技術群、網站論壇丟擲的問題,主動思考、整理,學習總結,以備不時之需,有些問題平常不經常遇到,但一旦出現,之前沒有處理過會比較棘手;另一方面是工作中的問題,通常會有應急處理辦法,問題處理後,儘量形成問題分析報告,對有些問題選擇深度思考、討論,探究根本原因,進而歸檔或分享,這都是寶貴的經驗。
效能最佳化一直是資料庫大腦的重點,也是運維、開發者工作價值的體現。透過對內幕的探索,能夠撥雲見日,配合相關工具透過配置或SQL的最佳化,來提升資料庫的訪問效能。
第七層: 讀懂原始碼,快速定位
大學計算機相關專業的同學,一般會有C語言的課程,C語言可以算是世界上最偉大的程式語言之一,可以用來編寫UNIX/Linux的核心,也可以實現Python/Ruby解析器、Apache中介軟體等,很多關聯式資料庫都能看到C語言的影子。
PG原始碼也是用C編寫,嘗試學習原始碼是件有挑戰性的事,就如同駕駛手動擋汽車,如能操作熟練,必能體會其中的樂趣。不用任何解讀,就能快速定位到原始碼直接理解PG的工作邏輯,幫助我們更好的使用PG。
第八層: 編寫原始碼,完善最佳化
編寫PG原始碼是有志於從事系統程式設計工作同學的追求或方向,PG的強大凝聚了世界各地PG核心編碼工程師的智慧,遺憾的是,PG國際社群的貢獻者檔案中還沒有出現中國人的名字。當然,國內也不乏優秀的系統編碼者,期待透過大家共同的努力,將會湧現更多、更優秀的系統編碼工程師出現在列表中!
PG國際社群貢獻者列表連結:
第九層:融會貫通,自由馳聘
學習任何技能,最終的境界是融匯貫通,以無招勝有招。
無論大家從事DBA、DEV或者系統核心開發,透過有效的方法,堅持不懈的積累都可以達到這一層,自由揮灑。
後記
以上內容只是在PG的學習角度做的一些總結,用好PG還需要有良好的系統、資料庫原理知識,這也是基礎,猶如地基,地基穩,寶塔立。PG學習的九層寶塔,是為了更形象具體的描述,學習過程不是說必須按此一層一層進行,大家可以根據自己興趣或工作需要有所選擇的開展學習。
最後,說兩點學習的方法體會:
第一:多交流、多閱讀、多練習。
多與前輩交流,科學問答,多閱讀優秀書籍,自己多做實驗。書是人類進步的階梯,學習最好的夥伴,可以根據學習階段或工作需要選擇閱讀。
參考書目
《PostgreSQL修煉之道-從小工到專家》
《PostgreSQL 9X之巔》
《PostgreSQL實戰》
《PostgreSQL指南:內幕探索》
《PostgreSQL伺服器程式設計》
……
第二:投資學習,嚮導師借力。
培訓是件專業的事,優秀的培訓導師可以幫你快速把握要領、修正方法;幫你節約時間、能更快速有效的提升技能;還能夠提供更多的資源,譬如良好的學習環境、就業機會、技術支援等,人生多一良師,也是一大幸事。
讀罷本文,想必有讀者會問我是幾層,我只能這麼回答您“路漫漫其修遠兮,吾將上下而求索”。如果本文對您有所幫助,也不枉費腦力一場;如果您有不同意見也可以借PG分會平臺發表或進一步交流。
延伸閱讀...
關於中國PostgreSQL分會
中國開源軟體聯盟PostgreSQL分會於2017年成立,由多家國內主要PG生態企業共同發起,是PostgreSQL資料庫作為開源聯盟重點發展和支援物件所產出的重要成果。受工信部中國電子資訊產業發展研究院、中國開源軟體聯盟共同指導,以提高中國PostgreSQL發展和應用水平為宗旨,致力於構建PG產業生態、推動PG技術產學研用發展。作為國內唯一的PG行業協會組織,分會承擔著在國內推廣和發展PostgreSQL技術的職能。
關於中國PostgreSQL產業發展基金
中國PostgreSQL發展基金是由中國開源軟體聯盟PostgreSQL分會發起並管理,致力於在國內推動PostgreSQL生態發展的產業基金,PostgreSQL發展基金吸收多家PG技術應用企業捐助,基金總規模1000萬。
分會使命:依託PG技術,催化產業共贏。
分會職能與任務:提升PG在中國影響力、促進PG產業生態發展
分會重點工作:
-
PostgresConf.CN(PCC)大會——中國地區規模最大,國際嘉賓最多的PG生態大會,PGconf全球正式會議。
-
PostgreSQL中國培訓認證體系——國內唯一的體系化、規範化PG培訓與認證體系
-
PostgreSQL中國象牙塔計劃——聯合各會員單位和PG產業鏈企業,依託中國PG產業發展基金,致力於推動高等院校PG產學研用生態發展,培養更多高水平PG技術人才的計劃。該計劃主要透過全國範圍100所高等院校共建開源資料庫創新實驗室,PG分會高校實訓基地,PG創新研究啟動基金等方式落地,目標在未來5年培養5萬以上PG專業技術人才。
-
PostgreSQL中國貢獻者計劃——依託中國PG產業發展基金和PG分會國際技術交流橋樑的職能,引導、培育更多的中國PG技術人員向國際社群核心開發者,原始碼貢獻者方向發展,培育出一支以上世界級的核心社群貢獻者團隊。幫助中國資料庫核心研究跨越式發展。
-
PostgreSQL生態基礎建設——除PG培訓認證體系外,透過PG人才供需平臺、高等院校象牙塔計劃、PG中國Support平臺等打造推動PG生態發展的基礎設施。為產業發展提供必要支撐與支援。
會員單位(截止2019.11):
-
阿里雲端計算有限公司
-
瀚高基礎軟體股份有限公司
-
騰訊雲端計算(北京)有限公司
-
北京百度網訊科技有限公司
-
雲和恩墨(北京)資訊科技有限公司
-
平安科技(深圳)有限公司
-
平安壹錢包電子商務有限公司
-
山大地緯軟體股份有限公司
-
國家電網全球能源網際網路研究院
-
北京許繼電氣有限公司
-
亞信科技(南京)有限公司
-
武漢大學計算機學院
-
惠而浦(中國)股份有限公司
-
北京海量資料技術股份有限公司
-
北京晟數科技有限公司
-
北京優技教育科技有限公司
-
北京今日智慧科技有限公司
-
南京柯普瑞資訊科技有限公司
-
成都文武資訊科技有限公司
-
北京優炫軟體股份有限公司
-
天曦網路科技(北京)有限公司
-
廣州雲徙科技有限公司
-
北京優帆科技有限公司
-
上海佳軟資訊科技有限公司
-
上海雲貝網路科技有限公司
-
北京太陽塔科技有限公司
-
杭州乘數科技有限公司
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2663007/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 九層天塔技術開發丨原始碼丨九層天塔系統開發詳情分析原始碼
- 九層天塔智慧合約模式系統開發模式
- 寶塔使用
- 寶塔後臺解決寶塔相關問題
- PostgreSQL-PostgreSQL中的public(九)SQL
- 學習金字塔
- 寶塔常用命令,寶塔Linux皮膚命令大全!Linux
- nginx 寶塔 環境部署Nginx
- 寶塔反向代理配置
- docker 安裝寶塔Docker
- 九層天塔DApp合約開發系統搭建技術APP
- 寶塔Windows皮膚的安裝Windows
- 寶塔簡單實用
- The Internals of PostgreSQL學習SQL
- postgreSQL with子句學習SQL
- 九層天塔DAp開發(定製)系統開發(說明詳細)
- 寶塔站點的執行與停止
- 寶塔部署 寶塔遠端連線資料庫出現1045問題資料庫
- 寶塔如何還原網站網站
- linux重置寶塔密碼Linux密碼
- 寶塔線指標(轉載)指標
- 寶塔免登入版本7.7.0
- 寶塔如何修改FTP密碼FTP密碼
- 寶塔如何新增網站網站
- 寶塔如何修改預設頁
- 寶塔如何備份站點
- 寶塔如何切換PHP版本PHP
- postgresql學習-Part 1SQL
- Postgresql學習筆記SQL筆記
- 寶塔登入密碼忘記怎麼辦_寶塔linux皮膚命令大全密碼Linux
- 寶塔解決 mkdir() Permission Denied 的問題
- 一個實用的寶塔線的畫法
- C學習-列舉(九)
- React學習(九):表單React
- 前端學習文件寶典前端
- 寶塔Linux皮膚命令大全Linux
- 寶塔如何新增偽靜態
- 寶塔如何新增SSL證書