麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

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

手機(jī)站
千鋒教育

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

千鋒教育

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

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

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

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

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

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

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

1、MySQL使用起來更簡(jiǎn)單

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

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

MySQL開箱即用,以root用戶連接非常簡(jiǎn)單,但是配置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)用程序需要大量的讀操作而不需要太多的寫操作。因?yàn)镸ySQL具有更好的讀性能和更高的可伸縮性,所以更適合這些場(chǎng)景。

二、PostgreSQL介紹

1、簡(jiǎn)介

PostgreSQL是一種特性非常齊全的自由軟件的對(duì)象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),是以加州大學(xué)計(jì)算機(jī)系開發(fā)的POSTGRES,4.2版本為基礎(chǔ)的對(duì)象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。POSTGRES的許多名列前茅概念只是在比較遲的時(shí)候才出現(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ù)、索引方法、過程語言等。另外,因?yàn)樵S可證的靈活,任何人都可以以任何目的免費(fèi)使用、修改和分發(fā)PostgreSQL。

2、主要優(yōu)點(diǎn)

維護(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支持臨時(shí)表,而物化視圖,可以使用PL/pgSQL、PL/Perl、PL/Python或其他過程語言的存儲(chǔ)過程和觸發(fā)器模擬。索引方面,全面支持R-/R+tree索引、哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN(用來加速全文檢索),從8.3版本開始支持位圖索引。其他對(duì)象上,支持?jǐn)?shù)據(jù)域,支持存儲(chǔ)過程、觸發(fā)器、函數(shù)、外部調(diào)用、游標(biāo)。數(shù)據(jù)表分區(qū)方面,支持4種分區(qū),即范圍、哈希、混合、列表。從事務(wù)的支持度上看,對(duì)事務(wù)的支持與MySQL相比,經(jīng)歷了更為徹底的測(cè)試。My ISAM表處理方式方面,MySQL對(duì)于無事務(wù)的MyISAM表,采用表鎖定,1個(gè)長時(shí)間運(yùn)行的查詢很可能會(huì)阻礙對(duì)表的更新,而PostgreSQL不存在這樣的問題。從存儲(chǔ)過程上看,PostgreSQL支持存儲(chǔ)過程。因?yàn)榇鎯?chǔ)過程的存在也避免了在網(wǎng)絡(luò)上大量原始的SQL語句的傳輸,這樣的優(yōu)勢(shì)是顯而易見的。用戶定義函數(shù)的擴(kuò)展方面,PostgreSQL可以更方便地使用UDF(用戶定義函數(shù))進(jìn)行擴(kuò)展。

3、劣勢(shì)

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

4、內(nèi)存頁面

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

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

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

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

三、MySQL介紹

1、簡(jiǎn)介

MySQL是一個(gè)關(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ù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型和大型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。

2、系統(tǒng)特性

MySQL使用 C和 C++編寫,并使用了多種編譯器進(jìn)行測(cè)試,保證了源代碼的可移植性。支持 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查詢算法,有效地提高查詢速度。既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫而嵌入到其他的軟件中。提供多語言支持,常見的編碼如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。提供 TCP/IP、ODBC 和 JDBC等多種數(shù)據(jù)庫連接途徑。提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。支持大型的數(shù)據(jù)庫??梢蕴幚頁碛猩锨f條記錄的大型數(shù)據(jù)庫。支持多種存儲(chǔ)引擎。MySQL 是開源的,所以你不需要支付額外的費(fèi)用。MySQL 使用標(biāo)準(zhǔn)的 SQL數(shù)據(jù)語言形式。MySQL 對(duì) PHP 有很好的支持,PHP是比較流行的 Web 開發(fā)語言。MySQL是可以定制的,采用了 GPL協(xié)議,你可以修改源碼來開發(fā)自己的 MySQL 系統(tǒng)。在線 DDL/更改功能,數(shù)據(jù)架構(gòu)支持動(dòng)態(tài)應(yīng)用程序和開發(fā)人員靈活性。復(fù)制全局事務(wù)標(biāo)識(shí),可支持自我修復(fù)式集群。

3、查詢和索引

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

在不確定應(yīng)該在哪些數(shù)據(jù)列上創(chuàng)建索引的時(shí)候,人們從 EXPLAIN SELECT 命令那里往往可以獲得一些幫助。這其實(shí)只是簡(jiǎn)單地給一條普通的 SELECT 命令加一個(gè) EXPLAIN 關(guān)鍵字作為前綴而已。有了這個(gè)關(guān)鍵字,MySQL 將不是去執(zhí)行那條 SELECT 命令,而是去對(duì)它進(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 的意思是:對(duì)應(yīng)于上一級(jí)數(shù)據(jù)表里的每一條記錄,這個(gè)數(shù)據(jù)表里的所有記錄都必須被讀取一遍——這種情況往往可以用一索引來避免)。

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

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

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

延伸閱讀1:MySQL手冊(cè)bug

在 5.5.31 版本時(shí)人們發(fā)現(xiàn) Oracle 取消了其中的 GPL 協(xié)議,造成了一定的不安。有開發(fā)者在 MySQL 程序臭蟲網(wǎng)站上舉報(bào)這項(xiàng)授權(quán)錯(cuò)誤問題,隨即 MySQL 工程服務(wù)總監(jiān) Yngve Svendsen 在網(wǎng)站上坦言,這的確是一個(gè)文件臭蟲,因?yàn)?man 手冊(cè)程序重新編譯時(shí)套用了錯(cuò)誤的授權(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é),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(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)我們?cè)跒g覽器中輸入網(wǎng)頁的域名時(shí),首先需要進(jìn)行域名解析。瀏覽器會(huì)將域名發(fā)送給本地域名服務(wù)器(DNS),以獲取對(duì)應(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是一個(gè)全功能的Web框架,它提供了許多開箱即用的功能和組件,包括路由系統(tǒng)、模板引擎、ORM(對(duì)象關(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)用,允許一個(gè)進(jìn)程...詳情>>

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

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

2023-10-13 05:34:16
快速通道
主站蜘蛛池模板: 中文字幕无码久久精品| 99re热在线观看| 再深点灬舒服了灬太大| 日韩三级网址| 好爽~好大~不要| 男男毛片| 波多野结衣57分钟办公室| 啊啊深一点| 美女让我桶| 成人国产在线不卡视频| 波多野结衣痴女系列88| 久久成人精品视频| 亚洲欧美精品一中文字幕| 伊人色综合久久| 亚洲一区二区三区免费观看| 欧美激情一区二区三区| 好妈妈5高清中字在线观看| 欧美日韩一级二级三级| 好男人www社区| 美国十次啦大导航| 性欧美高清come| 美女一级一级毛片| 精品国产一区二区三区不卡| 一二三四视频社区在线| 午夜爽爽| 爱爱帝国亚洲一区二区三区| 欧美猛交xxxx免费看| 第一福利官方导航| 和僧侣的交行之夜樱花| 美女扒开尿口让男人操| 色综合视频一区二区三区| 成人性生交大片免费看| 村上凉子丰满禁断五十路| 哆啦a梦エロ本| 欧美性大战久久久久久| 一级伦理电线在2019| 日本不卡一区二区三区四区| 精品久久洲久久久久护士免费| 天堂mv在线免费播放| 亚洲大成色www永久网站| 干狠狠|