久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(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)前位置:首頁(yè)  >  技術(shù)干貨  > 既然PostgreSQL在各方面都優(yōu)于MySQL,為什么國(guó)內(nèi)大部分互聯(lián)網(wǎng)公司還堅(jiān)持使用MySQL?

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

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

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

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

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

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

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

        3、MySQL始終有公司背書(shū)

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

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

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

        二、PostgreSQL介紹

        1、簡(jiǎn)介

        PostgreSQL是一種特性非常齊全的自由軟件的對(duì)象-關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS),是以加州大學(xué)計(jì)算機(jī)系開(kāi)發(fā)的POSTGRES,4.2版本為基礎(chǔ)的對(duì)象關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。POSTGRES的許多名列前茅概念只是在比較遲的時(shí)候才出現(xiàn)在商業(yè)網(wǎng)站數(shù)據(jù)庫(kù)中。PostgreSQL支持大部分的SQL標(biāo)準(zhǔn)并且提供了很多其他現(xiàn)代特性,如復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制等。同樣,PostgreSQL也可以用許多方法擴(kuò)展,例如通過(guò)增加新的數(shù)據(jù)類(lèi)型、函數(shù)、操作符、聚集函數(shù)、索引方法、過(guò)程語(yǔ)言等。另外,因?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。從基本功能上來(lái)看,支持ACID、關(guān)聯(lián)完整性、數(shù)據(jù)庫(kù)事務(wù)、Unicode多國(guó)語(yǔ)言。表和視圖方面,PostgreSQL支持臨時(shí)表,而物化視圖,可以使用PL/pgSQL、PL/Perl、PL/Python或其他過(guò)程語(yǔ)言的存儲(chǔ)過(guò)程和觸發(fā)器模擬。索引方面,全面支持R-/R+tree索引、哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN(用來(lái)加速全文檢索),從8.3版本開(kāi)始支持位圖索引。其他對(duì)象上,支持?jǐn)?shù)據(jù)域,支持存儲(chǔ)過(guò)程、觸發(fā)器、函數(shù)、外部調(diào)用、游標(biāo)。數(shù)據(jù)表分區(qū)方面,支持4種分區(qū),即范圍、哈希、混合、列表。從事務(wù)的支持度上看,對(duì)事務(wù)的支持與MySQL相比,經(jīng)歷了更為徹底的測(cè)試。My ISAM表處理方式方面,MySQL對(duì)于無(wú)事務(wù)的MyISAM表,采用表鎖定,1個(gè)長(zhǎng)時(shí)間運(yùn)行的查詢很可能會(huì)阻礙對(duì)表的更新,而PostgreSQL不存在這樣的問(wèn)題。從存儲(chǔ)過(guò)程上看,PostgreSQL支持存儲(chǔ)過(guò)程。因?yàn)榇鎯?chǔ)過(guò)程的存在也避免了在網(wǎng)絡(luò)上大量原始的SQL語(yǔ)句的傳輸,這樣的優(yōu)勢(shì)是顯而易見(jiàn)的。用戶定義函數(shù)的擴(kuò)展方面,PostgreSQL可以更方便地使用UDF(用戶定義函數(shù))進(jìn)行擴(kuò)展。

        3、劣勢(shì)

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

        4、內(nèi)存頁(yè)面

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

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

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

        特殊空間是為了頁(yè)面操作所需要的。為了其他模塊對(duì)頁(yè)面進(jìn)行操作,PostgreSQL內(nèi)部定義了一些頁(yè)面的操作函數(shù)。頁(yè)面的相關(guān)操作包括頁(yè)面初始化、頁(yè)面添加、修復(fù)和刪除。供其他子模塊進(jìn)行調(diào)用。這里值得關(guān)注的是頁(yè)面修復(fù)與頁(yè)面批量刪除的操作函數(shù)。為了實(shí)現(xiàn)這兩個(gè)操作函數(shù),PostgreSQL專(zhuān)門(mén)定義了一個(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ù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開(kāi)發(fā),屬于Oracle旗下產(chǎn)品。MySQL是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是較好的 RDBMS(Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件之一。MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型和大型網(wǎng)站的開(kāi)發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。

        2、系統(tǒng)特性

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

        3、查詢和索引

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

        在 EXPLAIN 命令的輸出結(jié)果里,第1列是從數(shù)據(jù)庫(kù)讀取的數(shù)據(jù)表的名字,它們按被讀取的先后順序排列。type列指定了本數(shù)據(jù)表與其它數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系(JOIN)。在各種類(lèi)型的關(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ù)表里的所有記錄都必須被讀取一遍——這種情況往往可以用一索引來(lái)避免)。

        possible_keys 數(shù)據(jù)列給出了 MySQL 在搜索數(shù)據(jù)記錄時(shí)可選用的各個(gè)索引。key 數(shù)據(jù)列是 MySQL 實(shí)際選用的索引,這個(gè)索引按字節(jié)計(jì)算的長(zhǎng)度在 key_len 數(shù)據(jù)列里給出。比如說(shuō),對(duì)于一個(gè) INTEGER 數(shù)據(jù)列的索引,這個(gè)字節(jié)長(zhǎng)度將是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)的更多信息,比如說(shuō),如果 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é)議,造成了一定的不安。有開(kāi)發(fā)者在 MySQL 程序臭蟲(chóng)網(wǎng)站上舉報(bào)這項(xiàng)授權(quán)錯(cuò)誤問(wèn)題,隨即 MySQL 工程服務(wù)總監(jiān) Yngve Svendsen 在網(wǎng)站上坦言,這的確是一個(gè)文件臭蟲(chóng),因?yàn)?man 手冊(cè)程序重新編譯時(shí)套用了錯(cuò)誤的授權(quán)內(nèi)容。不過(guò)仍然有人認(rèn)為,Oracle 取消開(kāi)源授權(quán)改采商業(yè)授權(quán)的“這一天遲早是要到來(lái)的”,并尋求其他代替方案。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專(zhuān)屬學(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èn)網(wǎng)頁(yè)的背后發(fā)生了什么?

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

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

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

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

        一、全功能的Web框架Django是一個(gè)全功能的Web框架,它提供了許多開(kāi)箱即用的功能和組件,包括路由系統(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ù)傳遞和通信。它通過(guò)跨進(jìn)程的方法調(diào)用,允許一個(gè)進(jìn)程...詳情>>

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

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

        2023-10-13 05:34:16
        快速通道
        岳阳县| 乌审旗| 江阴市| 师宗县| 华安县| 通辽市| 义马市| 景泰县| 靖江市| 当阳市| 二连浩特市| 花莲县| 黔西县| 屏东市| 金堂县| 获嘉县| 龙山县| 宁强县| 板桥市| 乡城县| 汾西县| 巨野县| 兴义市| 新昌县| 顺平县| 额济纳旗| 丹棱县| 梁河县| 清远市| 宁远县| 花莲县| 麻栗坡县| 宁明县| 郑州市| 钟祥市| 大田县| 沙河市| 福鼎市| 岐山县| 惠州市| 织金县|