中文字幕av高清_国产视频一二区_男女羞羞羞视频午夜视频_成人精品一区_欧美色视_在线视频这里只有精品

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 既然PostgreSQL在各方面都優(yōu)于MySQL,為什么國內(nèi)大部分互聯(lián)網(wǎng)公司還堅持使用MySQL?

既然PostgreSQL在各方面都優(yōu)于MySQL,為什么國內(nèi)大部分互聯(lián)網(wǎng)公司還堅持使用MySQL?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 04:39:55 1697143195

一、PostgreSQL在各方面都優(yōu)于MySQL,但國內(nèi)大部分互聯(lián)網(wǎng)公司還堅持使用MySQL的原因

1、MySQL使用起來更簡單

MySQL在Windows平臺上安裝比較容易。早期的PostgreSQL沒有提供Windows平臺的版本,需要自己編譯。

2、學(xué)習(xí)MySQL更加容易

MySQL開箱即用,以root用戶連接非常簡單,但是配置PostgreSQL、創(chuàng)建用戶等等操作比MySQL要復(fù)雜。

3、MySQL始終有公司背書

MySQL創(chuàng)建了社區(qū)和配套產(chǎn)品的生態(tài)系統(tǒng),無論是在線文檔,還是論壇都比PostgreSQL豐富。

4、MySQL更廣泛地應(yīng)用于Web應(yīng)用程序

MySQL比PostgreSQL更加廣泛地應(yīng)用于Web應(yīng)用程序,這些應(yīng)用程序需要大量的讀操作而不需要太多的寫操作。因為MySQL具有更好的讀性能和更高的可伸縮性,所以更適合這些場景。

二、PostgreSQL介紹

1、簡介

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

2、主要優(yōu)點

維護(hù)者是PostgreSQL Global Development Group,首次發(fā)布于1989年6月。操作系統(tǒng)支持WINDOWS、Linux、UNIX、MAC OS X、BSD。從基本功能上來看,支持ACID、關(guān)聯(lián)完整性、數(shù)據(jù)庫事務(wù)、Unicode多國語言。表和視圖方面,PostgreSQL支持臨時表,而物化視圖,可以使用PL/pgSQL、PL/Perl、PL/Python或其他過程語言的存儲過程和觸發(fā)器模擬。索引方面,全面支持R-/R+tree索引、哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN(用來加速全文檢索),從8.3版本開始支持位圖索引。其他對象上,支持?jǐn)?shù)據(jù)域,支持存儲過程、觸發(fā)器、函數(shù)、外部調(diào)用、游標(biāo)。數(shù)據(jù)表分區(qū)方面,支持4種分區(qū),即范圍、哈希、混合、列表。從事務(wù)的支持度上看,對事務(wù)的支持與MySQL相比,經(jīng)歷了更為徹底的測試。My ISAM表處理方式方面,MySQL對于無事務(wù)的MyISAM表,采用表鎖定,1個長時間運行的查詢很可能會阻礙對表的更新,而PostgreSQL不存在這樣的問題。從存儲過程上看,PostgreSQL支持存儲過程。因為存儲過程的存在也避免了在網(wǎng)絡(luò)上大量原始的SQL語句的傳輸,這樣的優(yōu)勢是顯而易見的。用戶定義函數(shù)的擴(kuò)展方面,PostgreSQL可以更方便地使用UDF(用戶定義函數(shù))進(jìn)行擴(kuò)展。

3、劣勢

最新版本和歷史版本不分離存儲,導(dǎo)致清理老舊版本時需要做更多的掃描,代價比較大但一般的數(shù)據(jù)庫都有高峰期,如果合理安排VACUUM,這也不是很大的問題,而且在PostgreSQL9.0中VACUUM進(jìn)一步被加強(qiáng)了。在PostgreSQL中,由于索引完全沒有版本信息,不能實現(xiàn)Coverage index scan,即查詢只掃描索引,不能直接從索引中返回所需的屬性,還需要訪問表,而Oracle與Innodb則可以。

4、內(nèi)存頁面

PostgreSQL內(nèi)存頁面的默認(rèn)大小是8kB。頁面的邏輯結(jié)構(gòu)被定義成三個部分:頁首部(PageHeader)、元組記錄空間(ltem Space)以及特殊空間(Special Space)。

頁首部記錄了頁面的使用信息,這些信息由元組記錄空間和特殊空間的偏移量地址、頁面分布格式版本號和頁面的事物日志記載點等等所組成。

元組記錄空間是存儲元組信息的地方,在這里面每個元組記錄被稱為一個ltem,Item由ltemld和元組數(shù)據(jù)組成,ltemld內(nèi)部定義了元組在頁面中的偏移量、ltem指針的狀態(tài)以及元組項的比特位數(shù)長度。

特殊空間是為了頁面操作所需要的。為了其他模塊對頁面進(jìn)行操作,PostgreSQL內(nèi)部定義了一些頁面的操作函數(shù)。頁面的相關(guān)操作包括頁面初始化、頁面添加、修復(fù)和刪除。供其他子模塊進(jìn)行調(diào)用。這里值得關(guān)注的是頁面修復(fù)與頁面批量刪除的操作函數(shù)。為了實現(xiàn)這兩個操作函數(shù),PostgreSQL專門定義了一個數(shù)據(jù)結(jié)構(gòu)itemldSortData,它為方便在這兩個函數(shù)中對元組項Item實現(xiàn)降序排序而定義。

三、MySQL介紹

1、簡介

MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于Oracle旗下產(chǎn)品。MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是較好的 RDBMS(Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型和大型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。

2、系統(tǒng)特性

MySQL使用 C和 C++編寫,并使用了多種編譯器進(jìn)行測試,保證了源代碼的可移植性。支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)。為多種編程語言提供了 API。這些編程語言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。支持多線程,充分利用 CPU 資源。優(yōu)化的 SQL查詢算法,有效地提高查詢速度。既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中。提供多語言支持,常見的編碼如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。提供 TCP/IP、ODBC 和 JDBC等多種數(shù)據(jù)庫連接途徑。提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。支持大型的數(shù)據(jù)庫。可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。支持多種存儲引擎。MySQL 是開源的,所以你不需要支付額外的費用。MySQL 使用標(biāo)準(zhǔn)的 SQL數(shù)據(jù)語言形式。MySQL 對 PHP 有很好的支持,PHP是比較流行的 Web 開發(fā)語言。MySQL是可以定制的,采用了 GPL協(xié)議,你可以修改源碼來開發(fā)自己的 MySQL 系統(tǒng)。在線 DDL/更改功能,數(shù)據(jù)架構(gòu)支持動態(tài)應(yīng)用程序和開發(fā)人員靈活性。復(fù)制全局事務(wù)標(biāo)識,可支持自我修復(fù)式集群。

3、查詢和索引

只有當(dāng)數(shù)據(jù)庫里已經(jīng)有了足夠多的測試數(shù)據(jù)時,它的性能測試結(jié)果才有實際參考價值。如果在測試數(shù)據(jù)庫里只有幾百條數(shù)據(jù)記錄,它們往往在執(zhí)行完名列前茅條查詢命令之后就被全部加載到內(nèi)存里,這將使后續(xù)的查詢命令都執(zhí)行得非常快–不管有沒有使用索引。只有當(dāng)數(shù)據(jù)庫里的記錄超過了 1000 條、數(shù)據(jù)總量也超過了 MySQL 服務(wù)器上的內(nèi)存總量時,數(shù)據(jù)庫的性能測試結(jié)果才有意義。

在不確定應(yīng)該在哪些數(shù)據(jù)列上創(chuàng)建索引的時候,人們從 EXPLAIN SELECT 命令那里往往可以獲得一些幫助。這其實只是簡單地給一條普通的 SELECT 命令加一個 EXPLAIN 關(guān)鍵字作為前綴而已。有了這個關(guān)鍵字,MySQL 將不是去執(zhí)行那條 SELECT 命令,而是去對它進(jìn)行分析。MySQL 將以表格的形式把查詢的執(zhí)行過程和用到的索引等信息列出來。

在 EXPLAIN 命令的輸出結(jié)果里,第1列是從數(shù)據(jù)庫讀取的數(shù)據(jù)表的名字,它們按被讀取的先后順序排列。type列指定了本數(shù)據(jù)表與其它數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系(JOIN)。在各種類型的關(guān)聯(lián)關(guān)系當(dāng)中,效率較高的是 system,然后依次是 const、eq_ref、ref、range、index 和 All(All 的意思是:對應(yīng)于上一級數(shù)據(jù)表里的每一條記錄,這個數(shù)據(jù)表里的所有記錄都必須被讀取一遍——這種情況往往可以用一索引來避免)。

possible_keys 數(shù)據(jù)列給出了 MySQL 在搜索數(shù)據(jù)記錄時可選用的各個索引。key 數(shù)據(jù)列是 MySQL 實際選用的索引,這個索引按字節(jié)計算的長度在 key_len 數(shù)據(jù)列里給出。比如說,對于一個 INTEGER 數(shù)據(jù)列的索引,這個字節(jié)長度將是4。如果用到了復(fù)合索引,在 key_len 數(shù)據(jù)列里還可以看到 MySQL 具體使用了它的哪些部分。作為一般規(guī)律,key_len 數(shù)據(jù)列里的值越小越好。

ref 數(shù)據(jù)列給出了關(guān)聯(lián)關(guān)系中另一個數(shù)據(jù)表里的數(shù)據(jù)列的名字。row 數(shù)據(jù)列是 MySQL 在執(zhí)行這個查詢時預(yù)計會從這個數(shù)據(jù)表里讀出的數(shù)據(jù)行的個數(shù)。row 數(shù)據(jù)列里的所有數(shù)字的乘積可以大致了解這個查詢需要處理多少組合。

最后,extra 數(shù)據(jù)列提供了與 JOIN 操作有關(guān)的更多信息,比如說,如果 MySQL 在執(zhí)行這個查詢時必須創(chuàng)建一個臨時數(shù)據(jù)表,就會在 extra 列看到 usingtemporary 字樣。

延伸閱讀1:MySQL手冊bug

在 5.5.31 版本時人們發(fā)現(xiàn) Oracle 取消了其中的 GPL 協(xié)議,造成了一定的不安。有開發(fā)者在 MySQL 程序臭蟲網(wǎng)站上舉報這項授權(quán)錯誤問題,隨即 MySQL 工程服務(wù)總監(jiān) Yngve Svendsen 在網(wǎng)站上坦言,這的確是一個文件臭蟲,因為 man 手冊程序重新編譯時套用了錯誤的授權(quán)內(nèi)容。不過仍然有人認(rèn)為,Oracle 取消開源授權(quán)改采商業(yè)授權(quán)的“這一天遲早是要到來的”,并尋求其他代替方案。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
訪問網(wǎng)頁的背后發(fā)生了什么?

一、域名解析當(dāng)我們在瀏覽器中輸入網(wǎng)頁的域名時,首先需要進(jìn)行域名解析。瀏覽器會將域名發(fā)送給本地域名服務(wù)器(DNS),以獲取對應(yīng)的IP地址。如...詳情>>

2023-10-13 06:04:09
外企銀行一般用什么linux版本系統(tǒng)和數(shù)據(jù)庫呢?

一、外企銀行一般用什么linux版本系統(tǒng)和數(shù)據(jù)庫Linux有非常多的發(fā)行版本,從性質(zhì)上劃分,大體分為由商業(yè)公司維護(hù)的商業(yè)版本與由開源社區(qū)維護(hù)的免...詳情>>

2023-10-13 05:50:44
為什么Python開發(fā)世界持續(xù)被Django統(tǒng)治那么久?

一、全功能的Web框架Django是一個全功能的Web框架,它提供了許多開箱即用的功能和組件,包括路由系統(tǒng)、模板引擎、ORM(對象關(guān)系映射)工具、表...詳情>>

2023-10-13 05:41:39
Binder到底是什么?

一、Binder的定義Binder是Android系統(tǒng)中的一種進(jìn)程間通信(IPC)機(jī)制,用于不同進(jìn)程間的數(shù)據(jù)傳遞和通信。它通過跨進(jìn)程的方法調(diào)用,允許一個進(jìn)程...詳情>>

2023-10-13 05:40:00
Oracle新出的數(shù)據(jù)庫Oracle21c怎么樣?

一、Oracle21c怎么樣Oracle 考慮到 2020 年我們的客戶將面臨前所未有的經(jīng)濟(jì)和業(yè)務(wù)中斷。我們決定不將 Database 20c Preview 版本升級為 General...詳情>>

2023-10-13 05:34:16
快速通道
主站蜘蛛池模板: 国产一区二区精彩视频 | 欧美色视 | 99久久婷婷国产综合精品电影 | 久在线 | 一级黄色裸体片 | 99精品全国免费观看视频软件 | 粉嫩高清一区二区三区 | 亚洲精品乱码久久久久久蜜桃91 | 亚洲成人在线视频播放 | 中文字幕亚洲在线 | 欧美精品在线不卡 | 91九色视频在线 | 黑人巨大精品 | 园产精品久久久久久久7电影 | 久久生活片 | 欧美激情视频一区二区三区在线播放 | 国产激情毛片 | aⅴ色国产 欧美 | 精品久久影院 | 亚洲天堂电影网 | 欧美成人精品一区二区男人看 | 亚洲一级性生活片 | 日韩精品在线视频 | 亚洲精品电影在线观看 | 国产一区二区三区精品久久久 | 一区二区三区在线 | 欧 | 日韩色在线 | 国产精品久久免费视频 | www,久久久 | 亚洲国产精品久久久 | 国产日韩精品视频 | 在线手机电影 | 一级看片 | 国产区在线观看 | 亚洲免费国产视频 | 国产97在线播放 | 久久精品综合 | 色av色av色av | 欧美激情自拍 | 欧美lesbianxxxxhd视频社区 | 成人a在线视频免费观看 |