狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

宇宙最強數據庫——PostgreSQL for Windows 16_x64綠色精簡版(僅25MB)

admin
2023年9月13日 11:36 本文熱度 1019
 

懶得勤快的博客_互聯網分享精神masuit.com|ldqk.org|ldqk.xyz|masuit.org宇宙最強數據庫——PostgreSQL for Windows 16_x64綠色精簡版(僅25MB)

PostgreSQL是一種特性非常齊全的自由軟件的對象-關系型數據庫管理系統(ORDBMS),是以加州大學計算機系開發的POSTGRES。POSTGRES的許多領先概念只是在比較遲的時候才出現在商業網站數據庫中。PostgreSQL支持大部分的SQL標準并且提供了很多其他現代特性,如復雜查詢、外鍵、觸發器、視圖、事務完整性、多版本并發控制等。同樣,PostgreSQL也可以用許多方法擴展,例如通過增加新的數據類型、函數、操作符、聚集函數、索引方法、過程語言等。另外,因為許可證的靈活,任何人都可以以任何目的免費使用、修改和分發PostgreSQL。

特點

1)維護者是PostgreSQL Global Development Group,首次發布于1989年6月。
2)操作系統支持WINDOWS、Linux、UNIX、MAC OS X、BSD。
3)從基本功能上來看,支持ACID、關聯完整性、數據庫事務、Unicode多國語言。
4)表和視圖方面,PostgreSQL支持臨時表,而物化視圖,可以使用PL/pgSQL、PL/Perl、PL/Python或其他過程語言的存儲過程和觸發器模擬。
5)索引方面,全面支持R-/R+tree索引、哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN(用來加速全文檢索),從8.3版本開始支持位圖索引。
6)其他對象上,支持數據域,支持存儲過程、觸發器、函數、外部調用、游標7)數據表分區方面,支持4種分區,即范圍、哈希、混合、列表。
8)從事務的支持度上看,對事務的支持與MySQL相比,經歷了更為徹底的測試。
懶得勤快的博客_互聯網分享精神masuit.com|ldqk.org|ldqk.xyz|masuit.org宇宙最強數據庫——PostgreSQL for Windows 16_x64綠色精簡版(僅25MB)

9)My ISAM表處理方式方面,MySQL對于無事務的MyISAM表,采用表鎖定,1個長時間運行的查詢很可能會阻礙對表的更新,而PostgreSQL不存在這樣的問題。
10)從存儲過程上看,PostgreSQL支持存儲過程。因為存儲過程的存在也避免了在網絡上大量原始的SQL語句的傳輸,這樣的優勢是顯而易見的。
11)用戶定義函數的擴展方面,PostgreSQL可以更方便地使用UDF(用戶定義函數)進行擴展。

對比mysql

1、PostgreSQL的穩定性極強,Innodb等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足的進步,然而很多Mysql用戶都遇到過Server級的數據庫丟失的場景---Mysql系統庫是MyISAM的,相較而言,PG數據庫在這方面要好一些。
2、任何系統都有他的性能極限,在高并發讀寫,負載逼近極限下,PG的性能指標仍然可以維持雙曲線甚至對數曲線,到頂峰之后不再下降,而MySQL明細出現一個波峰后下滑。
懶得勤快的博客_互聯網分享精神masuit.com|ldqk.org|ldqk.xyz|masuit.org宇宙最強數據庫——PostgreSQL for Windows 16_x64綠色精簡版(僅25MB)3、PG多年在GIS領域處于優勢地位,因為它有豐富的幾何類型,實際上不止幾何類型,PG中有大量的字典、數組、bitmap等數據類型,相比之下MaySQL就差很多,insagram就是因為PG的空間數據庫擴展POSTGIS遠遠強于MySQL的my spatial而采用PGSQL的。
4、PG的“無鎖定”特性非常突出,甚至包括vacuum這樣的整理數據空間的操作,這個和PGSSQL的MVCC實現有關系。
5、PG可以使用函數和條件索引,這使得PG數據庫的調優非常靈活,mysql就沒有這個功能,條件索引在web應用中很重要。
6、PG有極其強悍的SQL編程能力,有豐富的統計函數和統計語法支持,比如分析函數(Oracle的叫法,PG里面叫Window函數),還可以用多種語言來寫存儲過程,對于R的支持也很好。這一點上MySQL就差的很遠,很多分析功能那個都沒有,騰訊內部數據存儲主要是Mysql,但是主要的數據分析就是Hadoop+PGsql。
7、PG的有很多中集群架構可以選擇,plproxy可以支持語句級的鏡像或者分片,slony可以進行字段級的同步設置,standby可以構建WAL文件級或者流式的讀寫分離集群,同步頻率和集群策略調整方便,操作非常簡單。
8、一般關系型數據庫的字符串有限定長度8k左右,無限長Text類型的功能受限,只能作為外部大數據訪問。而PG的TEXT類型可以直接方法,SQL語法內置正則表達式,可以索引,還可以全文檢索,或使用xml xpath。用PG的話,文檔數據庫就可以省略了
9、對于web應用來說,復制的特性很重要,Mysql到現在也是異步復制,pgsql可以做到同步,異步,半同步復制。還有mysql的同步是基于binlog復制,類似oracle golden gate, 是基于stream的復制,做到同步很困難,這種方式更加適合異地復制,pgsql的復制基于wal,可以做到同步復制。同時pgsql還提供stream復制。
10、Pgsql對于numa架構的支持要比mysql強一些,比mysql對于讀的性能要好些,pgsql提交可以完全異步,而mysql的內存表不夠實用(表鎖原因)

 

PostgreSQL相對于MySQL的優勢

1)不僅僅是關系型數據庫

除了存儲正常的數據類型外,還支持存儲:

json和jsonb之間的區別:

jsonb和json在更高的層面上看起來幾乎是一樣的,但在存儲實現上是不同的。

當我們比較寫入數據速度時,由于數據存儲的方式的原因,jsonb會比json稍微的慢一點。json列會每次都解析存儲的值,這意味著鍵的順序要和輸入的時候一樣。但jsonb不同,以二進制格式存儲且不保證鍵的順序。因此,如果你有軟件需要依賴鍵的順序,jsonb可能不是你的應用的最佳選擇。使用jsonb的優勢還在于你可以輕易的整合關系型數據和非關系型數據, PostgreSQL對于mongodb這類的基于文檔的數據庫是個不小的威脅,畢竟如果一個表中只有一列數據的類型是半結構化的,沒有必要為了遷就它而整個表的設計采用schemaless的結構。

2)支持地理信息處理擴展

PostGIS 為PostgreSQL提供了存儲空間地理數據的支持,使PostgreSQL成為了一個空間數據庫,能夠進行空間數據管理、數量測量與幾何拓撲分析。在功能上,和MYSQL對比,PostGIS具有下列優勢:

 


O2O業務場景中的LBS業務使用PostgreSQL + PostGIS有無法比擬的優勢。

3)可以快速構建REST API

PostgREST 可以方便的為任何 PostgreSQL 數據庫提供完全的 RESTful API 服務。

4)支持樹狀結構

支持R-trees這樣可擴展的索引類型,可以更方便地處理一些特殊數據。MySQL 處理樹狀的設計會很復雜, 而且需要寫很多代碼, 而 PostgreSQL 可以高效處理樹結構。

5)有極其強悍的 SQL 編程能力

支持遞歸,有非常豐富的統計函數和統計語法支持。

  • MySQL:支持 create PROCEDURE 和 create FUNCTION 語句。存儲過程可以用 SQL 和 C++ 編寫。用戶定義函數可以用 SQL、C 和 C++ 編寫。

  • PostgreSQL:沒有單獨的存儲過程,都是通過函數實現的。用戶定義函數可以用 PL/pgSQL(專用的過程語言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 編寫。

6)外部數據源支持

可以把 70 種外部數據源 (包括 Mysql, Oracle, CSV, hadoop …) 當成自己數據庫中的表來查詢。Postgres有一個針對這一難題的解決方案:一個名為“外部數據封裝器(Foreign Data Wrapper,FDW)”的特性。該特性最初由PostgreSQL社區領袖Dave Page四年前根據SQL標準SQL/MED(SQL Management of External Data)開發。FDW提供了一個SQL接口,用于訪問遠程數據存儲中的遠程大數據對象,使DBA可以整合來自不相關數據源的數據,將它們存入Postgres數據庫中的一個公共模型。這樣,DBA就可以訪問和操作其它系統管理的數據,就像在本地Postgres表中一樣。例如,使用FDW for MongoDB,數據庫管理員可以查詢來自文檔數據庫的數據,并使用SQL將它與來自本地Postgres表的數據相關聯。借助這種方法,用戶可以將數據作為行、列或JSON文檔進行查看、排序和分組。他們甚至可以直接從Postgres向源文檔數據庫寫入(插入、更細或刪除)數據,就像一個一體的無縫部署。也可以對Hadoop集群或MySQL部署做同樣的事。FDW使Postgres可以充當企業的中央聯合數據庫或“Hub”。)

7)沒有字符串長度限制

一般關系型數據庫的字符串有限定長度8k左右,無限長 TEXT 類型的功能受限,只能作為外部大數據訪問。而PostgreSQL的 TEXT 類型可以直接訪問,SQL語法內置正則表達式,可以索引,還可以全文檢索,或使用xml xpath。MySQL 的各種text字段有不同的限制,要手動區分 small text, middle text, large text… PostgreSQL 沒有這個限制,text 能支持各種大小。

8)支持圖結構數據存儲

沒有具體使用過,具體可以自己搜索下。

9)支持窗口函數

窗口函數提供跨行相關的當前查詢行集執行計算的能力。僅當調用跟著OVER子句的聚集函數,作為窗口函數;否則它們作為常規的聚合函數。窗口也是一種分組,但和 group by 的分組不同。窗口,可以提供分組之外,還可以執行對每個窗口進行計算。可以相像成是group by 后,然后對每個分組進行計算,而不像Group by ,只是單純地分組。MySQL 不支持 OVER 子句, 而PostgreSQL支持。OVER 子句能簡單的解決 “每組取 top 5” 的這類問題。MySQL支持的SQL語法(ANSI SQL標準)的很小一部分。不支持遞歸查詢、通用表表達式(Oracle的with 語句)或者窗口函數(分析函數)。

10)對索引的支持更強

PostgreSQL 的可以使用函數和條件索引,這使得PostgreSQL數據庫的調優非常靈活,mysql就沒有這個功能,條件索引在web應用中很重要。對于索引類型:

  • MySQL:取決于存儲引擎。MyISAM:BTREE,InnoDB:BTREE。

  • PostgreSQL:支持 B-樹、哈希、R-樹和 Gist 索引。

InnoDB的表和索引都是按相同的方式存儲。也就是說表都是索引組織表。這一般要求主鍵不能太長而且插入時的主鍵最好是按順序遞增,否則對性能有很大影響。PostgreSQL不存在這個問題。

索引類型方面,MySQL取決于存儲引擎。MyISAM:BTREE,InnoDB:BTREE。PostgreSQL支持 B-樹、哈希、R-樹和 Gist 索引。

11)集群支持更好

Mysql Cluster可能與你的想象有較大差異。開源的cluster軟件較少。復制(Replication)功能是異步的并且有很大的局限性。例如,它是單線程的(single-threaded),因此一個處理能力更強的Slave的恢復速度也很難跟上處理能力相對較慢的Master。

PostgreSQL有豐富的開源cluster軟件支持。plproxy 可以支持語句級的鏡像或分片,slony 可以進行字段級的同步設置,standby 可以構建WAL文件級或流式的讀寫分離集群,同步頻率和集群策略調整方便,操作非常簡單。

另外,PostgreSQL的主備復制屬于物理復制,相對于MySQL基于binlog的邏輯復制,數據的一致性更加可靠,復制性能更高,對主機性能的影響也更小。對于WEB應用來說,復制的特性很重要,mysql到現在也是異步復制,pgsql可以做到同步,異步,半同步復制。還有mysql的同步是基于binlog復制,類似oracle golden gate,是基于stream的復制,做到同步很困難,這種方式更加適合異地復制,pgsql的復制基于wal,可以做到同步復制。同時,pgsql還提供stream復制。

12)事務隔離做的更好

MySQL 的事務隔離級別 repeatable read 并不能阻止常見的并發更新, 得加鎖才可以, 但悲觀鎖會影響性能, 手動實現樂觀鎖又復雜. 而 PostgreSQL 的列里有隱藏的樂觀鎖 version 字段, 默認的 repeatable read 級別就能保證并發更新的正確性, 并且又有樂觀鎖的性能。

13)對于字符支持更好一些

MySQL 里需要 utf8mb4 才能顯示 emoji 的坑, PostgreSQL 沒這個坑。

14)對表連接支持較完整

對表連接支持較完整,MySQL只有一種表連接類型:嵌套循環連接(nested-loop),不支持排序-合并連接(sort-merge join)與散列連接(hash join)。PostgreSQL都支持。

15)存儲方式支持更大的數據量

PostgreSQL主表采用堆表存放,MySQL采用索引組織表,能夠支持比MySQL更大的數據量。

16)時間精度更高

MySQL對于時間、日期、間隔等時間類型沒有秒以下級別的存儲類型,而PostgreSQL可以精確到秒以下。

17)優化器的功能較完整

MySQL對復雜查詢的處理較弱,查詢優化器不夠成熟,explain看執行計劃的結果簡單。性能優化工具與度量信息不足。

PostgreSQL很強大的查詢優化器,支持很復雜的查詢處理。explain返回豐富的信息。提供了一些性能視圖,可以方便的看到發生在一個表和索引上的select、delete、update、insert統計信息,也可以看到cache命中率。網上有一個開源的pgstatspack工具。

18)序列支持更好

MySQL 不支持多個表從同一個序列中取 id, 而 PostgreSQL 可以。

19)對子查詢支持更好

對子查詢的支持。雖然在很多情況下在SQL語句中使用子查詢效率低下,而且絕大多數情況下可以使用帶條件的多表連接來替代子查詢,但是子查詢的存在在很多時候仍然不可避免。而且使用子查詢的SQL語句與使用帶條件的多表連接相比具有更高的程序可讀性。幾乎任何數據庫的子查詢 (subquery) 性能都比 MySQL 好。

20)增加列更加簡單

MySQL表增加列,基本上是重建表和索引,會花很長時間。PostgreSQL表增加列,只是在數據字典中增加表定義,不會重建表.

MySQL相對于PostgreSQL的優勢

1)MySQL比PostgreSQL更流行

流行對于一個商業軟件來說,也是一個很重要的指標,流行意味著更多的用戶,意味著經受了更多的考驗,意味著更好的商業支持、意味著更多、更完善的文檔資料。易用,很容易安裝。第三方工具,包括可視化工具,讓用戶能夠很容易入門。

2)回滾實現更優

innodb的基于回滾段實現的MVCC機制,相對PG新老數據一起存放的基于XID的MVCC機制,是占優的。新老數據一起存放,需要定時觸發VACUUM,會帶來多余的IO和數據庫對象加鎖開銷,引起數據庫整體的并發能力下降。而且VACUUM清理不及時,還可能會引發數據膨脹。

3)在Windows上運行更可靠

與PostgreSQL相比,MySQL更適宜在Windows環境下運行。MySQL作為一個本地的Windows應用程序運行(在 NT/Win2000/WinXP下,是一個服務),而PostgreSQL是運行在Cygwin模擬環境下。PostgreSQL在Windows下運行沒有MySQL穩定,應該是可以想象的。

4)線程模式相比進程模式的優勢

MySQL使用了線程,而PostgreSQL使用的是進程。在不同線程之間的環境轉換和訪問公用的存儲區域顯然要比在不同的進程之間要快得多。

5)權限設置上更加完善

MySQL在權限系統上比PostgreSQL某些方面更為完善。PostgreSQL只支持對于每一個用戶在一個數據庫上或一個數據表上的 insert、select和update/delete的授權,而MySQL允許你定義一整套的不同的數據級、表級和列級的權限。對于列級的權限, PostgreSQL可以通過建立視圖,并確定視圖的權限來彌補。MySQL還允許你指定基于主機的權限,這對于目前的PostgreSQL是無法實現的,但是在很多時候,這是有用的。

6)存儲引擎插件化機制

MySQL的存儲引擎插件化機制,使得它的應用場景更加廣泛,比如除了innodb適合事務處理場景外,myisam適合靜態數據的查詢場景。

7)適應24/7運行

MySQL可以適應24/7運行。在絕大多數情況下,你不需要為MySQL運行任何清除程序。PostgreSQL目前仍不完全適應24/7運行,這是因為你必須每隔一段時間運行一次VACUUM。

8)更加試用于簡單的場景

PostgreSQL只支持堆表,不支持索引組織表,Innodb只支持索引組織表。

  • 索引組織表的優勢:表內的數據就是按索引的方式組織,數據是有序的,如果數據都是按主鍵來訪問,那么訪問數據比較快。而堆表,按主鍵訪問數據時,是需要先按主鍵索引找到數據的物理位置。

  • 索引組織表的劣勢:索引組織表中上再加其它的索引時,其它的索引記錄的數據位置不再是物理位置,而是主鍵值,所以對于索引組織表來說,主鍵的值不能太大,否則占用的空間比較大。

  • 對于索引組織表來說,如果每次在中間插入數據,可能會導致索引分裂,索引分裂會大大降低插入的性能。所以對于使用innodb來說,我們一般最好讓主鍵是一個無意義的序列,這樣插入每次都發生在最后,以避免這個問題。

    懶得勤快的博客_互聯網分享精神masuit.com|ldqk.org|ldqk.xyz|masuit.org宇宙最強數據庫——PostgreSQL for Windows 16_x64綠色精簡版(僅25MB)

由于索引組織表是按一個索引樹,一般它訪問數據塊必須按數據塊之間的關系進行訪問,而不是按物理塊的訪問數據的,所以當做全表掃描時要比堆表慢很多,這可能在OLTP中不明顯,但在數據倉庫的應用中可能是一個問題。

總結

MySQL從一開始就沒有打算做所有事情,因而它在功能方面有一定的局限性,并不能滿足一些先進應用程序的要求。MySQL對某些功能(例如引用、事務、審計等)的實現方式使得它與其他的關系型數據庫相比缺少了一些可靠性。對于簡單繁重的讀取操作,使用PostgreSQL可能有點小題大做,同時性能也比MySQL這樣的同類產品要差。除非你需要絕對的數據完整性,ACID遵從性或者設計復雜,否則PostgreSQL對于簡單的場景而言有點多余。

如何你確定只在MySQL和PostgreSQL中進行選擇,以下規則總是有效的:

修改說明

保留全部 PostgreSQL 相關功能

刪除自帶的 pgadmin 4

刪除文檔

懶得勤快的博客_互聯網分享精神masuit.com|ldqk.org|ldqk.xyz|masuit.org宇宙最強數據庫——PostgreSQL for Windows 16_x64綠色精簡版(僅25MB)

刪除開發用頭文件

刪除開發用靜態連接庫

刪除 Stack Build 工具

寫了一個管理數據庫用的批處理

使用前請先安裝VC++運行庫

下載地址

15.4: https://ldqk.lanzouc.com/izNTD16m0noh

16:https://ldqk.lanzouj.com/iXlVY186s7ab

Mod包

PostGIS空間數據庫:https://www.123pan.com/s/EywDVv-C0CBd.html

timescaledb時序數據庫:https://ldqk.lanzouk.com/imPEw10sreij

安裝GIS空間數據庫

直接運行安裝包跟著向導一路下一步即可。

安裝timescaledb時序數據庫教程

設置pgsql的環境變量


需要在path中添加你所安裝的postgresql路徑下的bin和lib,我這里是:C:\Users\Administrator\Desktop\web\pgsql-14.3-winx64\bin和C:\Users\Administrator\Desktop\web\pgsql-14.3-winx64\lib。

然后將下載好的timescaledb的壓縮包打開:


 選擇setup.exe,這里需要用管理員權限運行不然后面安裝會有問題。


除了上面那個路徑外其他的選擇yes就行。安裝完timescaledb把postgresql服務進程開啟,開啟過程和關閉類似。

安裝完成,可以執行create EXTENSION IF NOT EXISTS timescaledb CASCADE;檢測是否安裝成功。

懶得勤快的博客_互聯網分享精神masuit.com|ldqk.org|ldqk.xyz|masuit.org宇宙最強數據庫——PostgreSQL for Windows 16_x64綠色精簡版(僅25MB)

 出現如上圖的信息說明安裝成功。


該文章在 2023/9/13 11:36:57 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved