"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[5306],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>d});varr=a(67294);functions(e,t,a){returntine?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}functionn(e,t){vara=Object.keys(e);if(Object.getOwnPropertySymbols){varr=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){returnObject.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}returna}functioni(e){for(vart=1;t<arguments.length;t++){vara=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){s(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}returne}functiono(e,t){if(null==e)return{};vara,r,s=function(e,t){if(null==e)return{};vara,r,s={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(s[a]=e[a]);returns}(e,t);if(Object.getOwnPropertySymbols){varn=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}returns}varp=r.createContext({}),l=function(e){vart=r.useContext(p),a=t;returne&&(a="function"==typeofe?e(t):i(i({},t),e)),a},m=function(e){vart=l(e.components);returnr.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){vart=e.children;returnr.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){vara=e.components,s=e.mdxType,n=e.originalType,p=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),u=l(a),h=s,d=u["".concat(p,".").concat(h)]||u[h]||c[h]||n;returna?r.createElement(d,i(i({ref:t},m),{},{components:a})):r.createElement(d,i({ref:t},m))}));functiond(e,t){vara=arguments,s=t&&t.mdxType;if("string"==typeofe||s){varn=a.length,i=newArray(n);i[0]=h;varo={};for(varpint)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeofe?e:s,i[1]=o;for(varl=2;l<n;l++)i[l]=a[l];returnr.createElement.apply(null,i)}returnr.createElement.apply(null,a)}h.displayName="MDXCreateElement"},96608:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>l});varr=a(87462),s=(a(67294),a(3905));constn={title:"PostgreSQL",description:"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results."},i=void0,o={unversionedId:"research/benchmarks/postgres-adoption",id:"research/benchmarks/postgres-adoption",title:"PostgreSQL",description:"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results.",source:"@site/docs/research/benchmarks/postgres-adoption.md",sourceDirName:"research/benchmarks",slug:"/research/benchmarks/postgres-adoption",permalink:"/research/benchmarks/postgres-adoption",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/research/benchmarks/postgres-adoption.md",tags:[],version:"current",lastUpdatedAt:1747719072,formattedLastUpdatedAt:"20 May 2025",frontMatter:{title:"PostgreSQL",description:"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results."},sidebar:"research",previous:{title:"Research",permalink:"/research/"},next:{title:"Performance Benchmarks and Test Reports",permalink:"/research/benchmarks/test-results-summary"}},p={},l=[{value:"Introduction",id:"introduction",level:2},{value:"How to connect the <em>nwaku</em> to <em>Postgres</em>",id:"how-to-connect-the-nwaku-to-postgres",level:2},{value:"Examples of <em>nwaku</em> using <em>Postgres</em>",id:"examples-of-nwaku-using-postgres",level:2},{value:"Stress tests",id:"stress-tests",level:2},{value:"Insert test results",id:"insert-test-results",level:3},{value:"Maximum insert throughput",id:"maximum-insert-throughput",level:4},{value:"Query test results (jmeter)",id:"query-test-results-jmeter",level:3},{value:"Querytestresults(onlyStorepr