當(dāng)前PostgreSQL對于每個客戶端連接,通過fork單獨進(jìn)程來執(zhí)行,和openGauss的架構(gòu)不相同。openGauss實現(xiàn)線程化改造,通過線程模型來提升并行性能。
在洮南等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計制作按需策劃設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站,外貿(mào)網(wǎng)站制作,洮南網(wǎng)站建設(shè)費用合理。
諸如Oracle這種商業(yè)數(shù)據(jù)庫,基本都支持多種Process Models, Oracle默認(rèn)是多進(jìn)程。
根據(jù)Understanding MySQL Internals所說, MySQL一開始是Solaris上的 : Thus in May of 1996 MySQL version 1.0 was released to a limited group, followed by a public release in October 1996 of version 3.11.1. The initial public release provided only a binary distribution for Solaris. A month later, the source and the Linux binary were released.
這本書也提及了,為什么MySQL用多線程: Just as a good rider becomes one with the horse, Monty(MySQL author) had become one with the computer. It pained him to see system resources wasted. He felt confident enough to be able to write virtually bug-free code, deal with the concurrency issues presented by threads, and even work with s small stack. What an exciting challenge! Needless to say, he chose threads.Postgres的原因可以在The design of Postgres中找到:
However, this approach requires that a fairly complete special-purpose operating system be built. In contrast, the process-per-user model is simpler to implement but will not perform as well on most conventional operating systems. We decided after much soul searching to implement POSTGRES using a process-per-user model architecture because of our limited programming resources.
可以用多進(jìn)程模擬。如果用批處理腳本的話。
看你怎么測。
如果使用jdbc程序段,多線程確實可以模擬。一個線程一個連接。
設(shè)計好標(biāo)準(zhǔn)的數(shù)據(jù)集。網(wǎng)上或許有下載的。記錄好測試環(huán)境和測試各個階段所花時間。
特性 MySQL PostgreSQL
實例 通過執(zhí)行 MySQL 命令(mysqld)啟動實例。一個實例可以管理一個或多個數(shù)據(jù)庫。一臺服務(wù)器可以運行多個 mysqld 實例。一個實例管理器可以監(jiān)視 mysqld 的各個實例。
通過執(zhí)行 Postmaster 進(jìn)程(pg_ctl)啟動實例。一個實例可以管理一個或多個數(shù)據(jù)庫,這些數(shù)據(jù)庫組成一個集群。集群是磁盤上的一個區(qū)域,這個區(qū)域在安裝時初始化并由一個目錄組成,所有數(shù)據(jù)都存儲在這個目錄中。使用 initdb 創(chuàng)建第一個數(shù)據(jù)庫。一臺機(jī)器上可以啟動多個實例。
數(shù)據(jù)庫 數(shù)據(jù)庫是命名的對象集合,是與實例中的其他數(shù)據(jù)庫分離的實體。一個 MySQL 實例中的所有數(shù)據(jù)庫共享同一個系統(tǒng)編目。 數(shù)據(jù)庫是命名的對象集合,每個數(shù)據(jù)庫是與其他數(shù)據(jù)庫分離的實體。每個數(shù)據(jù)庫有自己的系統(tǒng)編目,但是所有數(shù)據(jù)庫共享 pg_databases。
MySQL的主要優(yōu)點 (速度,流行,window,線程,事務(wù))
1、 首先是速度,MySQL通常要比PostgreSQL快得多。MySQL自已也宣稱速度是他們追求的主要目標(biāo)之一,基于這個原因,MySQL在以前的文檔中也曾經(jīng)說過并不準(zhǔn)備支持事務(wù)和觸發(fā)器。
2、MySQL比PostgreSQL更流行,流行意味著更多的用戶,意味著經(jīng)受了更多的考驗,意味著更好的商業(yè)支持。而且MySQL提供了多個不同的社區(qū)版、商業(yè)版與企業(yè)版,而PG只提供了單個完整功能的版本。
3、 與PostgreSQL相比,MySQL更適宜在Windows環(huán)境下運行。PostgreSQL在Windows下運 行沒有MySQL穩(wěn)定。
4、MySQL使用了線程,而PostgreSQL使用的是進(jìn)程。在不同線程之間的環(huán)境轉(zhuǎn)換和訪問公用的存儲區(qū)域顯然要比在不同的進(jìn)程之間要快得多。
5、由于MySQL 4.0.2-alpha開始支持事務(wù)的概念,因此事務(wù)對于MySQL不再成為劣勢。相反,因為MySQL保留無事務(wù)的表類型。這就為用戶提供了更多的選擇。
PostgreSQL的主要優(yōu)點: (協(xié)議,規(guī)范,可靠,進(jìn)程,查詢)
1、PG遵循的是BSD協(xié)議,完全開源免費且不會被任何商業(yè)公司控制;而MySQL在Oracle手中,慢慢走向封閉。
2 、 PostgreSQL源代碼堪稱C語言的規(guī)范,易讀性比MySQL強(qiáng)很多。
3、可靠性是PostgreSQL的最高優(yōu)先級。它以堅如磐石的品質(zhì)和良好的工程化而聞名。PostgreSQL是完全支持ACID特性的,對于數(shù)據(jù)庫訪問提供了強(qiáng)大的安全性保證。
4、 PG是多進(jìn)程的,而My是多線程的。雖然并發(fā)不高時,My處理速度快;但是當(dāng)并發(fā)高時,對于現(xiàn)在的多核的單臺機(jī)器上,My的總體性能不如PG,原因是My的線程無法充分利用CPU的能力。
5、PG有很強(qiáng)大的查詢優(yōu)化器,支持很復(fù)雜的查詢處理,而My對復(fù)雜查詢處理較弱,查詢優(yōu)化器不夠成熟。