如何使用 Postgres 折疊您的堆棧 實現一切#postgresql認證

技術蔓延如何蔓延

假設您正在開發一款新產品或新功能。一開始,您的團隊會列出需要解決的技術問題。有些解決方案您將自行開發(您的秘訣),而其他解決方案您將使用現有技術(可能至少包括一個數據庫)來解決。

#PG培訓#PG考試#postgresql培訓#postgresql考試
除非您從事數據庫構建業務,否則自行開發數據庫通常是不明智的;它很復雜、風險很大,而且需要非常專業的技能。因此,您最終可能會采用各種現有數據庫:Postgres 用于事務數據,Elastic 用于全文搜索,Influx 用于時間序列,Pinecone 用于矢量操作,ClickHouse 用于分析。突然之間,您的技術堆棧變得龐大。

在這里插入圖片描述

為什么堆棧蔓延是一個問題

添加的每個新數據庫都會帶來一系列挑戰:需要學習不同的語言、需要理解一致性模型,以及無法忽略的操作細節。這不僅增加了復雜性,還帶來了我所說的“虛線”復雜性,即數據在每對系統之間流動時產生的額外開銷。數據庫越多,虛線越多,推斷整個系統的狀態就越困難。

你擁有更多的數據庫,因此,你遇到的問題也更多。

在這里插入圖片描述

崩潰的理由

那么還有什么替代方案呢?在我看來,這會讓你的堆棧崩潰。如果你用一個數據庫解決更多問題,那么你就可以移除多個復雜的軟件以及它們之間的虛線復雜性。在頭腦中保持數據流的心理模型以及推理不同時間的數據一致性要容易得多。你可以節省出原本花在操作這些新數據庫上的時間,并且可以將這些時間用于構建功能。
在這里插入圖片描述

PostgreSQL 在堆棧折疊方面表現出色,因為它既通用又專用。它不僅是一個出色的關系數據庫,還通過其擴展框架支持廣泛的額外用例。PostgreSQL 可以輕松處理 全文搜索 、 時間序列數據、 AI 向量 和分析等工作負載。

PostgreSQL 不僅功能多樣,而且強大而成熟。人們已經在生產環境中使用 PostgreSQL 超過 20 年,隨著采用速度的加快,PostgreSQL 的發展沒有任何放緩的跡象。邊緣情況眾所周知,部署模式、恢復策略和高可用性定義明確,并且有許多公司和擁護者可以為您提供幫助。

正因為如此,我鼓勵您使用 PostgreSQL 解決盡可能多的問題,壓縮您的堆棧,降低復雜性,并讓您有時間專注于構建。

對位:最適合這項工作的工具?

有一個眾所周知的論點,即您應該選擇“最適合工作的工具”,但這個論點有時會被顛倒過來,即“如果您只有一把錘子,那么所有東西看起來都像釘子”。我認為“PostgreSQL 適用于一切”的原則并不與這些原則相矛盾,只要您確保著眼于大局即可。

您如何定義“最適合該工作的數據庫”?它是速度最快的嗎?最容易使用的嗎?最容錯的嗎?還是可以最無縫地集成到您現有的基礎架構中并且您知道如何使用的數據庫(也許是已經存在的數據庫)?最佳選擇通常介于這些標準之間。

在這里插入圖片描述

您應該選擇數據庫 X 來獲得其速度,數據庫 Y 來獲得其效率,還是數據庫 Z 來獲得其云優化?如果老牌的 PostgreSQL 能夠滿足您現在的需求(具有久經考驗的有效性),并且可以進一步擴展(可能達到您當前需求的 10 倍),那么我認為您應該從已知數量開始。只有當 PostgreSQL 缺乏關鍵功能時才考慮添加其他數據庫,權衡其好處與管理多個系統的額外復雜性。或者,換一種說法, 選擇無聊的技術 (對不起 Postgres,我保證我仍然認為你很令人興奮)。

讓我們考慮兩種可能的情況:

  • PostgreSQL 適用于一切 :多年后,您的工作量超出了原有系統的能力。PostgreSQL
    在某些方面表現不佳,但這是一個“好問題”——成功的標志,也是改進架構的提示。
  • 過度設計,包含多個數據庫
    :您已準備好處理龐大的規模,但系統卻很脆弱、充滿極端情況且難以維護。這不僅具有挑戰性,而且會威脅到您的運營穩定性。

考慮到這些情況,我認為以 PostgreSQL 為中心的系統在理論上的未來挑戰,要比目前過早選擇多數據庫架構的復雜性更可取。

最后的話

“PostgreSQL 適用于一切”并不意味著永遠不使用其他數據庫。老實說,它甚至不是說將 PostgreSQL 用于一切。它是反對過早過度設計解決方案的格言,也是倡導簡單性的好處的格言。請記住,世界上有很多公司和應用程序,在 Timescale 等公司的幫助下,PostgreSQL 將擴展以滿足他們的大多數需求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38317.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38317.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38317.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

人工智能期末復習筆記(更新中)

分類問題 分類:根據已知樣本的某些特征,判斷一個新的樣本屬于哪種已知的樣本類 垃圾分類、圖像分類 怎么解決分類問題 分類和回歸的區別 1. 邏輯回歸分類 用于解決分類問題的一種模型。根據數據特征或屬性,計算其歸屬于某一類別 的概率P,…

ComfyUI局部重繪的四種方式 (附件工作流在最后)

前言 局部重繪需要在圖片中選擇重繪區域,點擊圖片右擊選擇Open in MaskEditor(在蒙版編輯器中打開),用鼠標描繪出需要重繪的區域 方式一:重繪編碼器 這種方式重繪比較生硬,需要額外搭配使用才行 方式二&…

el-upload 上傳圖片及回顯照片和預覽圖片,文件流和http線上鏈接格式操作

<div v-for"(info, index) in zsjzqwhxqList.helicopterTourInfoList" :key"info.id" >編輯上傳圖片// oss返回線上地址http鏈接格式&#xff1a;<el-form-itemlabel"巡視結果照片":label-width"formLabelWidth"><el…

Cyber Weekly #13

賽博新聞 1、谷歌發布最強開源小模型Gemma-2 本周五&#xff08;6月28日&#xff09;凌晨&#xff0c;谷歌發布最強開源小模型Gemma-2&#xff0c;分別為9B&#xff08;90億&#xff09;和27B&#xff08;270億&#xff09;參數規模&#xff0c;其中9B 模型在多項基準測試中均…

潁川韓氏,來自戰國七雄韓國的豪族

潁川是戰國七雄韓國故土&#xff0c;韓國被秦國滅國后&#xff0c;王公貴族們除了堅決反秦的被殺了外&#xff0c;大部分都留存了下來。這些人在楚、漢反秦戰爭中&#xff0c;成為反秦統一戰線的重要力量&#xff0c;其中兩人先后被封為重新恢復的韓國的國王。 一個是橫陽君韓…

Windows系統下,將nginx注冊為本地服【親測可用】

在Windows系統下&#xff0c;將nginx注冊為本地服務并設置為開機自動運行&#xff0c;可以通過以下步驟進行&#xff1a; 下載Windows Service Wrapper&#xff1a; 訪問 WinSW 項目頁面&#xff0c;下載適用于Windows的版本。 準備nginx&#xff1a; 確保你已經下載并解壓了n…

共有5部手機,如果通過服務器讓1號手機執行打開 “閑魚.js“ 腳本

1.手機端Auto.js腳本&#xff1a; 每部手機需要在連接時發送一個唯一的標識符&#xff08;如設備ID&#xff09;&#xff0c;并接收服務器發送的指令以執行指定的腳本。 // Auto.js腳本連接WebSocket服務器并發送設備ID var WebSocket require(ws); var ws new WebSocket(w…

大模型上下文長度擴展中的檢索增強技術簡述

基于Transformer的語言模型在眾多自然語言處理任務上都取得了十分優異的成績&#xff0c;在一些任務上已經達到SOTA的效果。但是&#xff0c;經過預訓練后&#xff0c;模型能夠較好處理的序列長度就固定下來。而當前的眾多場景往往需要處理很長的上下文&#xff08;如&#xff…

CppTest單元測試框架(更新)

目錄 1 背景2 設計3 實現4 使用4.1 主函數4.2 使用方法 1 背景 前面文章單元測試之CppTest測試框架中講述利用宏ADD_SUITE將測試用例自動增加到測試框架中。但在使用中發現一個問題&#xff0c;就是通過宏ADD_SUITE增加多個測試Suite時&#xff0c;每次運行時都是所有測試Suit…

逆向開發環境準備

JDK安裝 AndroidStudio安裝 默認sdk路徑 C:\Users\Administrator\AppData\Local\Android\Sdk 將platform-tools所在的目錄添加到path C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools 主要目的是使用該目錄下的adb等命令 將tools所在的目錄添加到path C:\Us…

1-5題查詢 - 高頻 SQL 50 題基礎版

目錄 1. 相關知識點2. 例題2.1.可回收且低脂的產品2.2.尋找用戶推薦人2.3.大的國家2.4. 文章瀏覽 I2.5. 無效的推文 1. 相關知識點 sql判斷&#xff0c;不包含null&#xff0c;判斷不出來distinct是通過查詢的結果來去除重復記錄ASC升序計算字符長度 CHAR_LENGTH() 或 LENGTH(…

sqlmap注入詳解

免責聲明:本文僅做分享... 目錄 1.介紹 2.特點 3.下載 4.幫助文檔 5.常見命令 指定目標 請求 HTTP cookie頭 HTTP User-Agent頭 HTTP協議的證書認證 HTTP(S)代理 HTTP請求延遲 設定超時時間 設定重試超時 設定隨機改變的參數值 利用正則過濾目標網址 避免過多的…

Python-爬蟲案例

Python-爬蟲案例 代碼代碼 代碼 import requests import json import threading from queue import Queue import timeclass HeiMaTouTiao:def __init__(self):self.headers {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) ""AppleWebKit/53…

前端筆記-day11

文章目錄 01-空間-平移02-視距03-空間旋轉Z軸04-空間旋轉X軸05-空間旋轉Y軸06-立體呈現07-案例-3D導航08-空間縮放10-動畫實現步驟11-animation復合屬性12-animation拆分寫法13-案例-走馬燈14-案例-精靈動畫15-多組動畫16-全民出游全民出游.htmlindex.css 01-空間-平移 <!D…

基于Spring Boot的在線醫療咨詢平臺的設計與實現【附源碼】

基于Spring Boot的在線醫療咨詢平臺的設計與實現 Design and implementation of the computer hardware mall based on Spring Boot Candidate&#xff1a; Supervisor&#xff1a; April 20th, 2024 學位論文原創性聲明 本人鄭重聲明&#xff1a;所呈交的論文是本人在導師…

初中英語優秀作文分析-006How to Deal with the Exam Stress-如何應對考試壓力

更多資源請關注紐扣編程微信公眾號 記憶樹 1 We students are very busy with schoolwork and in the face of many exams every school day. 翻譯 我們學生忙于功課&#xff0c;每個上學日都面臨許多考試。 簡化記憶 考試 句子結構 We students 主語 我們學生&#xf…

Vite: 高階特性 Pure ESM

概述 ESM 已經逐步得到各大瀏覽器廠商以及 Node.js 的原生支持&#xff0c;正在成為主流前端模塊化方案。 而 Vite 本身就是借助瀏覽器原生的 ESM 解析能力( type“module” )實現了開發階段的 no-bundle &#xff0c;即不用打包也可以構建 Web 應用。不過我們對于原生 ESM 的…

綜合評價類模型——突變級數法

含義 首先&#xff1a;對評價目標進行多層次矛盾分解其次&#xff1a;利用突變理論和模糊數學相結合產生突變模糊隸屬函數再次&#xff1a;由歸一公式進行綜合量化運算最終&#xff1a;歸一為一個參數&#xff0c;即求出總的隸屬函數&#xff0c;從而對評價目標進行排序分析特點…

【linux/shell實戰案例】shell中變量的使用

目錄 一.linux變量聲明及定義 二.linux變量使用方法 三.linux變量使用花括號${name}和雙引號“$name”的區別 四.linux變量使用單引號$name和雙引號“$name”的區別 五.linux變量中使用命令 一.linux變量聲明及定義 #!/bin/bash namezhaodabao 等號兩邊不能有空格變量名…

ES6面試題——箭頭函數和普通函數有什么區別

1. this指向問題 <script> let obj {a: function () {console.log(this); // 打印出&#xff1a;{a: ?, b: ?}},b: () > {console.log(this); // 打印出Window {window: Window, self: Window,...}}, }; obj.a(); obj.b(); </script> 箭頭函數中的this是在箭…