主頁 > 資料庫 > 為什么“去O”唯有PostgreSQL?

為什么“去O”唯有PostgreSQL?

2022-12-27 07:53:49 資料庫

 本文根據digoal(德哥)在〖2019 DAMS中國資料智能管理峰會〗現場演講內容整理而成,

講師介紹

digoal(德哥),PostgreSQL中國社區發起人之一、常委、兼任社區大學校長,阿里云資料庫首席專家團隊成員,提供資料庫首席專家服務,現任職于阿里云資料庫團隊,主要負責阿里云PostgreSQL產品線,包括RDS PG、PPAS(兼容Oracle)、POLARDB兼容PG、Oracle語法引擎的產品設計、推廣、應用落地與生態構建,

 

分享概要

1、PG社區的獨特性

2、PG的商業能力和創新能力

3、PG新版本與新特性

4、PG on 云

最近幾年我在推過PG的活動中,走過差不多15、16個國內城市,遇到不少參會者問到這樣一些問題:

  • 學生非常關心學習PG能從事什么樣的作業、未來發展機會如何?
  • 用戶特別關心遷移到PG是不是最終狀態?它是不是未來的趨勢?
  • 作為一個開源資料庫,背后是不是有商業公司在控制著它?

所以,我首先會分享PG社區的內容,

 

一、PG社區的獨特性

如果說99%的開源資料庫都是被商業公司控制的,那么PG是那1%,要說商業公司為什么要把資料庫開源出來?為什么要改協議?這個我們先來分析一下:今天你要研發一款資料庫,并且得到市場的認可,如果不開源的話,你會發現這個資料庫必須要有很好的渠道才能賺錢,所以商業公司選擇開源,培養背書群體,擴大生態,收割大客戶,至于為什么要改協議?我們看到許多商業開源資料庫都有對應的付費版本,例如企業版,高級周邊工具等,隨著上云成為了大趨勢,“云開源資料庫服務”吞噬著開源資料庫市場,用戶更多選擇的是云服務,而不是開源資料庫的企業版,這就造成了商業開源公司與云發生利益沖突,改協議是商業開源資料庫廠商被迫的選擇,而PG是一個純社區的資料庫,背后沒有被任何一家公司所控制,我們來看一下以下這張圖:

 

 

 

 餅圖展現的是給PG貢獻代碼的占比,我們先看資料,后面再跟大家分析一下原因,看圖你會發現占最大頭的是用戶,第二是資料庫服務商,這里的服務包括培訓、技術支持類的服務等,這兩大塊加起來就有66%了,剩下的就是資料庫廠商和云廠商,

上圖是給PG貢獻代碼的國家分布,上面沒有中國有點遺憾,但可能是因為這個至少要貢獻兩年以上才入列,所以中國估計過兩年會出現在這里,

 

 

 

 PG作為一個開源的社區資料庫活了這么久(追述到ingres的話有43年歷史),感覺牙齒不但沒掉還越來越鋒利,憑什么?PG有組織有紀律,從上圖可以看到首先是資產托管組織,包括商標、域名等,每年的開發者峰會在加拿大舉辦,

另外還有核心組、行為準則團隊,類似于組織部,有專門管贊助的委員會、籌款組等等,將來可能會組建專門負責管理專利的委員會,因為作為開源資料庫會發現專利可能是一個非常容易存在的漏洞點,PG對專利控制還是比較嚴格的,

回過頭分析剛剛給PG社區貢獻代碼的企業,他們為什么要持續貢獻核心代碼?

對于資料庫廠商來說,推一款新的商業資料庫通常都需要背書,試問小廠產品誰為你背書?

  • 只有技術的廠商,很難挑戰已有資料庫市場格局,
  • 只有渠道的廠商,需要抓住視窗期,快速占領市場,避免重復造輪子,需要一款可以無法律風險,二次開發與分發的開源資料庫,

目前達到商業化成熟度的唯有PG,所以資料庫廠商需要通過貢獻核心代碼,社區所有的用戶都可以為之背書,

對于資料庫服務提供商來說,開源產品的服務提供商,怎么才能體現他們的能力?誰能證明他們的牛逼?貢獻代碼,貢獻代碼之后用PG的那些人就可以為之背書,

對于最終用戶來說,他們希望社區長久,期望可以享受免費的、可持續發展的、開源的、不被任何商業公司、不被任何國家控制的企業級的資料庫,而且PG用的人越多,越多人背書,使用越靠譜,就像滾雪球一樣越滾越大,所以最終用戶愿意貢獻代碼,實際上是在推動開源產品的發展,對客戶自己也是有利的,

對于云廠商來說,自己做一款資料庫在云上賣需要培養生態,需要市場背書,需要大量研發資源,可能還需要重復造輪子,那么基于PG,就能免去自己培養生態,避免重復造輪子,而且PG的代碼基礎已經具備商業化基礎,另外,不斷提供代碼也是防止其他廠商控制PG失去市場主導能力的方法,

 

開源許可獨特性

除了以上這些原因,還有很重要的一點,開源許可獨特性,PG的開源許可是類BSD許可,可以隨意分發、閉源或開源,可以被用于商業目的或其他場合,

 

 

 PG開源中心的這行字(見紅框),說的是不管怎么使用、拷貝、修改、分發這個軟體,只要把這一行放到你的輸出版本里面去就行了,是不是活雷鋒?所以云廠商選擇這么友好的純社區版本感覺像揀到寶一樣,

 

架構獨特性

作為一款開源出來拿去直接用的資料庫,PG采用了開放介面的設計,是最具擴展能力的資料庫,基于PG的圖資料庫、流資料庫、GIS、時序資料庫、推薦資料庫、搜索引擎等;圍繞PG的應用垂直化插件機器學習、影像識別、分詞、向量計算、MPP等,基本上都是使用PG擴展介面擴展出來的,

 

商業趨勢

目前全球都在提高安全、合規、正版化意識,對于資料庫廠商、云廠商來說,從長遠來看,純社區具有這么強的可擴展能力的資料庫,PG可以說是首選,生態已經擺在這里了,還有不去用的理由嗎?

 

技術趨勢

首先,PG是一款遠遠超越當前關系資料庫的多模資料庫,因為它的開放性,可以隨意擴展,

其次,在內置并行計算方面,我接觸過很多用戶的資料庫就跟蜘蛛網一樣,為什么?因為用戶的業務需求很多,關系資料庫處理不了,需要將資料同步到其他引擎:最常見的有計算平臺、搜索引擎,還有一些客戶要同步到流計算平臺,空間,時序資料庫平臺等,同步會帶來硬體、管理、開發成本的增加,同時會引入資料丟失、延遲等風險,如果資料庫提供并行計算、搜索、時空等多模能力的話,沒必要把平臺建這么復雜,

再次,PG開始在內核中支持存盤引擎的擴展,可以解決行存、列存、記憶體引擎,多樣化的多版本控制,等不同場景不同需求的問題,

最后,在芯片支持方面,PG對芯片友好,例如ARM芯片的支持,

以上四方面滿足市場的既要又要還要的需求,即:既要SQL通用性,又要NOSQL擴展性,還要多模開發便捷性;既要OLTP又要OLAP,

 

二、PG的商業能力與創新能力

 

 

 對于資料庫的商用價值來講,首先是能不能扛住企業級的需求,也就是能不能做到零丟失、高可用、安全;彈性這一塊就是能不能橫向擴展、能不能做模塊化;而性能這一塊TP、AP都可以跑,Oracle兼容性體現兩塊:社區版本有這樣的插件,加完這個插件在Oracle資料型別然后還有函式,還有操作服務這一塊做的兼容,包括包也做的一些,因為用戶我見過大量的使用PLsql的存盤程序或函式,一個業務部就有上百萬行,使用PG的plpgsql可以改造這些oracle plsql存盤程序代碼,

另一方面嗎,阿里云提供兼容Oracle的資料庫PPAS(實際上也是基于PG的),我們兼容了PLsql語法,能夠減輕用戶區改造存盤程序到PG的作業,所以說這個東西熟悉之后你會發現PLPgsql能夠滿足功能差不多,沒有會弱到哪里去,其實做得挺好的,

在創新能力上,其實我們剛剛講到了一塊關于邊緣計算,邊緣計算分兩塊:基于GPU的并行,對用戶是透明的,資料庫會根據sql的成本、代價去啟動GPU并行計算,
阿里在這里同樣開源,阿里因為在線上有很多的用戶,包括影像處理、移動跟蹤做了GPU加速,這就是創新價值,
多模使得PG這個資料庫得以滿足那些你曾經想都不敢想的需求,

 

三、PG新版本與新特性

 

 

 上圖展示的是PG版本發布節奏,如果每年股票是這樣漲的話大家肯定很開心,作為背后沒有商業公司沒有驅動的開源資料庫,PG每年發一個大版本,每個大版本會持續維護五年,有組織有紀律就是不一樣,

PG 11新特性

 

PG 11是去年發的,有什么新特性?在此說明一下,我這里說的特性全部基于PG自己,比如基于11以前的版本,其實有很多功能很早之前就已經支撐,

 

1)磁區表增強

 

  • hash磁區;
  • 支持觸發器;
  • 支持默認磁區;
  • 允許修改磁區欄位,

 

2)并行計算增強

 

對業務完全透明的并行計算,幾乎覆寫所有的場景,平均20倍的提升,


 

 

 

 

 

 

 

 以上這個CASE資料量10億的表,大家覺得10億做排序要多久?不到3秒,不開并行需要70多秒,

什么時候要用并行計算?通常是實時分析,復雜查詢,馬上就要看到結果,原來需要T+1,現在就想做實時,

我們來看一下這些CASE,第一個是最簡單的全表掃描,要將近1分鐘,開并行只需要1.8秒,

哈希聚合,因為我們做分析一定會涉及到聚合,處理大量的資料,有哈希聚合、分組聚合,10億記錄的聚合需要花多少時間?5秒!不開并行需要140多秒,

做資料分析處理一般流程比較長,會有中間結果,

這些中間結果可能是通過create table as這種方式出來的,這種操作能不能支持運行?也可以,

同樣也是10億的資料量,差不多1.9秒,

創建索引,想不想很快完成?比如說這個索引膨脹,你想快速重建索引發現性能不行,10億記錄不帶并行將近1000秒,開啟并行后只需要252秒,

關于聚合的話,資料庫會提供一些聚合函式,比如說平均值、標準方差,有些時候發現資料庫提供聚合的方式不夠用,不能滿足你的業務要求,

所以的話需要自定義聚合,自定義聚合操作也支持并行,這邊也做了兩個測驗,一個求(count distinct)個數,另一個求count distinct陣列元素個數,分別從300,100秒降到了8秒,3秒,

另外還進行了其他復雜查詢(join、cte、subquery、排序、磁區查詢等),不再一一贅述,性能平均提速20倍左右,

 

3)btree index include索引葉子附加屬性

 

 

 這個特性比較有意思,創建索引的時候一般怎么做?制定欄位放進去,這些欄位是我要查的,我這里舉一個例子說,用非索引組的表,資料怎么存放?寫進來沒有任何順序,

比如說有這樣的業務做移動物件跟蹤,共享單車,我們在手機里可以看歷史軌跡,由上報的點組成,一般來說行程會涉及到上千個點,上報的資料是一條一條插進來的,這個世界有很多人同時騎車,也就是說很多人都在上報資料,你去查某一筆訂單的軌跡,我們怎么通常怎么優化?在訂單號加索引,感覺挺快的,但是有沒有想過這個問題在那里?你的資料是無序存盤,1000條記錄可能是分布在1000個資料塊,如果同時有大量并發查詢可以把IO打滿,即使這個資料在記憶體,也很容易觸達記憶體帶寬上限,

最后怎么解決這個問題?通常建個合索引,可以查出來,當然可以了,但是這里出現另外一個問題,這個Key在索引page的每個層面都是多個Key,他的這種split概率就會增加,但是實際上查詢條件就是驅動列,就是你的訂單號的哪一列,所以實際上可以創建索引的時候還是用訂單號,但是我把你的時間放到leaf page,同一個訂單的附加欄位的資料被放到了同一個訂單所在的葉子里面,這個時候來查詢,因為這個資料一千個點只落在三五資料塊,Include index相比較索引組織表的好處:我可以創建很多個按你的要求來的索引組織,好像同一份資料有很多資料組織結構一樣,然而索引組織表只有一種結構,

4)添加欄位(含默認值)更快

以前添加欄位不加否認值就是改一個原資料,以前加默認值做table rewrite所以慢,現在我們會變成甭管加什么欄位,甭管是否包括默認值,總之瞬間完成,對用戶特別友好,

 

 

 

 

5)支持存盤程序

在存盤程序中,支持子事務提交,

CREATE [ OR REPLACE ] PROCEDURE

    name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
  { LANGUAGE lang_name
    | TRANSFORM { FOR TYPE type_name } [, ... ]
    | [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
    | SET configuration_parameter { TO value | = value | FROM CURRENT }
    | AS 'definition'
    | AS 'obj_file', 'link_symbol'
  } ...

 

PG 12新特性

 

1)AM介面

 

 

如上圖所示,左邊是12以前的版本,右邊是12版本,12中間加了一層訪問方法,這里面有索引方法或表訪問方法,剝出來的好處就是我們可以在這個地方加新的資料存盤結構,例如加記憶體表、列存表,壓縮表等,都可以在這一層去做,

 

所以就有了列存的引擎,這里舉兩個例子,zedstore(列存)和zheap(支持回滾段),列存壓縮率高,支持向量計算,非常適合做批量計算,分析領域的性能提升很明顯,

 

第二就是zheap,把回滾段從資料存盤剝離出來,舊的版本拷貝到回滾段去,查到過去的版本去回滾段查,減少膨脹問題,


 

 

 

 

2)磁區表-大量磁區性能提升

 

原生磁區(包括11的版本)磁區很多有性能問題,12這一塊已經優化掉,在1000個磁區時,查詢有提升400多倍,磁區越多,性能提升越明顯,

 

 

3)GiST index include索引葉子附加屬性

 

  • 正軌跡,時空搜索;
  • 按結果集(索引)聚集存盤,消除回表IO放大,

 

4)CTE 物化、非物化

物化的下推,在12版本里面可以指定要不要物化,如果是物化的話,物化的子句跟外面完全隔離,相當于這一層單獨計算,如果指定不要物化,那么優化器會考慮子句外面的條件,可以將條件傳遞給非物化子句,提前過濾,提高性能,

 

 

5)日志采樣

 

日志采樣,相當于之前做審計日志,你要么全開,要么全關,實際上有的用戶要的是不要所有的采下來,比如說做排錯,同類錯誤不需要都被記錄下來,采樣就可以了,又比如說查詢訪問量特別大,如果所有的sql全審計下來會影響性能,使用這個采樣的功能,不會影響性能,

 

6)COPY WHERE

 

 

 

Copy時支持過濾條件,可以在匯入資料時過濾不需要的記錄,

 

四、PG on 云

 

 

 

作為阿里巴巴自主研發的下一代關系型分布式云原生資料庫,PolarDB目前兼容三種資料庫引擎:MySQL、PostgreSQL、高度兼容Oracle語法,計算能力最高可擴展至1000核以上,存盤容量最高可達100T,

  • 兼容Oracle語法的引擎:高度兼容Oracle語法,降低Oracle遷移風險、縮短遷移周期,助力企業快速替換Oracle,進入云智能時代,
  • 兼容PostgreSQL的引擎:完全兼容PostgreSQL,支持計算與存盤分離、獨立伸縮,存盤按量付費,業務透明讀寫分離(該項功能開發中),適合中大型企業核心業務場景,

本文來自博客園,作者:古道輕風,轉載請注明原文鏈接:https://www.cnblogs.com/88223100/p/Why-is-PostgreSQL-the-only-way-to-shift-O.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/540764.html

標籤:PostgreSQL

上一篇:MongoDB - 模式設計

下一篇:為什么NoSQL資料庫這么受歡迎?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more