{"id":12919,"date":"2019-10-30T13:32:16","date_gmt":"2019-10-30T12:32:16","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/"},"modified":"2019-10-30T13:32:16","modified_gmt":"2019-10-30T12:32:16","slug":"postgresql-13-will-come-with-partitioning-support-for-pgbench","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/","title":{"rendered":"PostgreSQL 13 will come with partitioning support for pgbench"},"content":{"rendered":"<p>A lot of people use <a href=\"https:\/\/www.postgresql.org\/docs\/current\/pgbench.html\" target=\"_blank\" rel=\"noopener noreferrer\">pgbench<\/a> to benchmark a PostgreSQL instance and pgbench is also heavily used by the PostgreSQL developers. While <a href=\"https:\/\/www.postgresql.org\/docs\/10\/release-10.html\" target=\"_blank\" rel=\"noopener noreferrer\">declarative partitioning was introduced in PostgreSQL 10<\/a> there was no support for that in pgbench, even in the current version, <a href=\"https:\/\/www.postgresql.org\/docs\/12\/release-12.html\" target=\"_blank\" rel=\"noopener noreferrer\">which is PostgreSQL 12<\/a>. With PostgreSQL 13, which is currently in development, this will change and pgbench will be able to create a partitioned pgbench_accounts tables you then can run your benchmark against.<\/p>\n<p><!--more--><\/p>\n<p>Having a look at the parameters of pgbench in PostgreSQL 13, two new ones pop up:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [18,19]\">\npostgres@centos8pg:\/home\/postgres\/ [pgdev] pgbench --help\npgbench is a benchmarking tool for PostgreSQL.\n\nUsage:\npgbench [OPTION]... [DBNAME]\n\nInitialization options:\n-i, --initialize         invokes initialization mode\n-I, --init-steps=[dtgvpf]+ (default \"dtgvp\")\nrun selected initialization steps\n-F, --fillfactor=NUM     set fill factor\n-n, --no-vacuum          do not run VACUUM during initialization\n-q, --quiet              quiet logging (one message each 5 seconds)\n-s, --scale=NUM          scaling factor\n--foreign-keys           create foreign key constraints between tables\n--index-tablespace=TABLESPACE\ncreate indexes in the specified tablespace\n--partitions=NUM         partition pgbench_accounts in NUM parts (default: 0)\n--partition-method=(range|hash)\npartition pgbench_accounts with this method (default: range)\n--tablespace=TABLESPACE  create tables in the specified tablespace\n--unlogged-tables        create tables as unlogged tables\n\nOptions to select what to run:\n-b, --builtin=NAME[@W]   add builtin script NAME weighted at W (default: 1)\n(use \"-b list\" to list available scripts)\n-f, --file=FILENAME[@W]  add script FILENAME weighted at W (default: 1)\n-N, --skip-some-updates  skip updates of pgbench_tellers and pgbench_branches\n(same as \"-b simple-update\")\n-S, --select-only        perform SELECT-only transactions\n(same as \"-b select-only\")\n\nBenchmarking options:\n-c, --client=NUM         number of concurrent database clients (default: 1)\n-C, --connect            establish new connection for each transaction\n-D, --define=VARNAME=VALUE\ndefine variable for use by custom script\n-j, --jobs=NUM           number of threads (default: 1)\n-l, --log                write transaction times to log file\n-L, --latency-limit=NUM  count transactions lasting more than NUM ms as late\n-M, --protocol=simple|extended|prepared\nprotocol for submitting queries (default: simple)\n-n, --no-vacuum          do not run VACUUM before tests\n-P, --progress=NUM       show thread progress report every NUM seconds\n-r, --report-latencies   report average latency per command\n-R, --rate=NUM           target rate in transactions per second\n-s, --scale=NUM          report this scale factor in output\n-t, --transactions=NUM   number of transactions each client runs (default: 10)\n-T, --time=NUM           duration of benchmark test in seconds\n-v, --vacuum-all         vacuum all four standard tables before tests\n--aggregate-interval=NUM aggregate data over NUM seconds\n--log-prefix=PREFIX      prefix for transaction time log file\n(default: \"pgbench_log\")\n--progress-timestamp     use Unix epoch timestamps for progress\n--random-seed=SEED       set random seed (\"time\", \"rand\", integer)\n--sampling-rate=NUM      fraction of transactions to log (e.g., 0.01 for 1%)\n--show-script=NAME       show builtin script code, then exit\n\nCommon options:\n-d, --debug              print debugging output\n-h, --host=HOSTNAME      database server host or socket directory\n-p, --port=PORT          database server port number\n-U, --username=USERNAME  connect as specified database user\n-V, --version            output version information, then exit\n-?, --help               show this help, then exit\n\nReport bugs to .\n<\/pre>\n<p>That should give us partitions according to the amount of partitions and partitioning method we chose, so let&#8217;s populate a new database:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@centos8pg:\/home\/postgres\/ [pgdev] psql -c \"create database pgbench\" postgres\nCREATE DATABASE\nTime: 326.715 ms\npostgres@centos8pg:\/home\/postgres\/ [pgdev] pgbench -i -s 10 --partitions=10 --partition-method=range --foreign-keys pgbench\ndropping old tables...\nNOTICE:  table \"pgbench_accounts\" does not exist, skipping\nNOTICE:  table \"pgbench_branches\" does not exist, skipping\nNOTICE:  table \"pgbench_history\" does not exist, skipping\nNOTICE:  table \"pgbench_tellers\" does not exist, skipping\ncreating tables...\ncreating 10 partitions...\ngenerating data...\n100000 of 1000000 tuples (10%) done (elapsed 0.20 s, remaining 1.78 s)\n200000 of 1000000 tuples (20%) done (elapsed 0.40 s, remaining 1.62 s)\n300000 of 1000000 tuples (30%) done (elapsed 0.74 s, remaining 1.73 s)\n400000 of 1000000 tuples (40%) done (elapsed 1.23 s, remaining 1.85 s)\n500000 of 1000000 tuples (50%) done (elapsed 1.47 s, remaining 1.47 s)\n600000 of 1000000 tuples (60%) done (elapsed 1.81 s, remaining 1.21 s)\n700000 of 1000000 tuples (70%) done (elapsed 2.25 s, remaining 0.97 s)\n800000 of 1000000 tuples (80%) done (elapsed 2.46 s, remaining 0.62 s)\n900000 of 1000000 tuples (90%) done (elapsed 2.81 s, remaining 0.31 s)\n1000000 of 1000000 tuples (100%) done (elapsed 3.16 s, remaining 0.00 s)\nvacuuming...\ncreating primary keys...\ncreating foreign keys...\ndone in 5.78 s (drop tables 0.00 s, create tables 0.07 s, generate 3.29 s, vacuum 0.84 s, primary keys 0.94 s, foreign keys 0.65 s).\n<\/pre>\n<p>The pgbench_accounts table should now be partitioned by range:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@centos8pg:\/home\/postgres\/ [pgdev] psql -c \"d+ pgbench_accounts\" pgbench\nPartitioned table \"public.pgbench_accounts\"\nColumn  |     Type      | Collation | Nullable | Default | Storage  | Stats target | Description\n----------+---------------+-----------+----------+---------+----------+--------------+-------------\naid      | integer       |           | not null |         | plain    |              |\nbid      | integer       |           |          |         | plain    |              |\nabalance | integer       |           |          |         | plain    |              |\nfiller   | character(84) |           |          |         | extended |              |\nPartition key: RANGE (aid)\nIndexes:\n\"pgbench_accounts_pkey\" PRIMARY KEY, btree (aid)\nForeign-key constraints:\n\"pgbench_accounts_bid_fkey\" FOREIGN KEY (bid) REFERENCES pgbench_branches(bid)\nReferenced by:\nTABLE \"pgbench_history\" CONSTRAINT \"pgbench_history_aid_fkey\" FOREIGN KEY (aid) REFERENCES pgbench_accounts(aid)\nPartitions: pgbench_accounts_1 FOR VALUES FROM (MINVALUE) TO (100001),\npgbench_accounts_10 FOR VALUES FROM (900001) TO (MAXVALUE),\npgbench_accounts_2 FOR VALUES FROM (100001) TO (200001),\npgbench_accounts_3 FOR VALUES FROM (200001) TO (300001),\npgbench_accounts_4 FOR VALUES FROM (300001) TO (400001),\npgbench_accounts_5 FOR VALUES FROM (400001) TO (500001),\npgbench_accounts_6 FOR VALUES FROM (500001) TO (600001),\npgbench_accounts_7 FOR VALUES FROM (600001) TO (700001),\npgbench_accounts_8 FOR VALUES FROM (700001) TO (800001),\npgbench_accounts_9 FOR VALUES FROM (800001) TO (900001)\n<\/pre>\n<p>The same should work for hash partitioning:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@centos8pg:\/home\/postgres\/ [pgdev] pgbench -i -s 10 --partitions=10 --partition-method=hash --foreign-keys pgbench\ndropping old tables...\ncreating tables...\ncreating 10 partitions...\ngenerating data...\n100000 of 1000000 tuples (10%) done (elapsed 0.19 s, remaining 1.69 s)\n200000 of 1000000 tuples (20%) done (elapsed 0.43 s, remaining 1.71 s)\n300000 of 1000000 tuples (30%) done (elapsed 0.67 s, remaining 1.55 s)\n400000 of 1000000 tuples (40%) done (elapsed 1.03 s, remaining 1.54 s)\n500000 of 1000000 tuples (50%) done (elapsed 1.22 s, remaining 1.22 s)\n600000 of 1000000 tuples (60%) done (elapsed 1.59 s, remaining 1.06 s)\n700000 of 1000000 tuples (70%) done (elapsed 1.80 s, remaining 0.77 s)\n800000 of 1000000 tuples (80%) done (elapsed 2.16 s, remaining 0.54 s)\n900000 of 1000000 tuples (90%) done (elapsed 2.36 s, remaining 0.26 s)\n1000000 of 1000000 tuples (100%) done (elapsed 2.69 s, remaining 0.00 s)\nvacuuming...\ncreating primary keys...\ncreating foreign keys...\ndone in 4.99 s (drop tables 0.10 s, create tables 0.08 s, generate 2.74 s, vacuum 0.84 s, primary keys 0.94 s, foreign keys 0.30 s).\npostgres@centos8pg:\/home\/postgres\/ [pgdev] psql -c \"d+ pgbench_accounts\" pgbench\nPartitioned table \"public.pgbench_accounts\"\nColumn  |     Type      | Collation | Nullable | Default | Storage  | Stats target | Description\n----------+---------------+-----------+----------+---------+----------+--------------+-------------\naid      | integer       |           | not null |         | plain    |              |\nbid      | integer       |           |          |         | plain    |              |\nabalance | integer       |           |          |         | plain    |              |\nfiller   | character(84) |           |          |         | extended |              |\nPartition key: HASH (aid)\nIndexes:\n\"pgbench_accounts_pkey\" PRIMARY KEY, btree (aid)\nForeign-key constraints:\n\"pgbench_accounts_bid_fkey\" FOREIGN KEY (bid) REFERENCES pgbench_branches(bid)\nReferenced by:\nTABLE \"pgbench_history\" CONSTRAINT \"pgbench_history_aid_fkey\" FOREIGN KEY (aid) REFERENCES pgbench_accounts(aid)\nPartitions: pgbench_accounts_1 FOR VALUES WITH (modulus 10, remainder 0),\npgbench_accounts_10 FOR VALUES WITH (modulus 10, remainder 9),\npgbench_accounts_2 FOR VALUES WITH (modulus 10, remainder 1),\npgbench_accounts_3 FOR VALUES WITH (modulus 10, remainder 2),\npgbench_accounts_4 FOR VALUES WITH (modulus 10, remainder 3),\npgbench_accounts_5 FOR VALUES WITH (modulus 10, remainder 4),\npgbench_accounts_6 FOR VALUES WITH (modulus 10, remainder 5),\npgbench_accounts_7 FOR VALUES WITH (modulus 10, remainder 6),\npgbench_accounts_8 FOR VALUES WITH (modulus 10, remainder 7),\npgbench_accounts_9 FOR VALUES WITH (modulus 10, remainder 8).\n<\/pre>\n<p>Looks fine. Now you can easily benchmark against a partitioned pgbench_accounts table.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A lot of people use pgbench to benchmark a PostgreSQL instance and pgbench is also heavily used by the PostgreSQL developers. While declarative partitioning was introduced in PostgreSQL 10 there was no support for that in pgbench, even in the current version, which is PostgreSQL 12. With PostgreSQL 13, which is currently in development, this [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[77],"type_dbi":[],"class_list":["post-12919","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL 13 will come with partitioning support for pgbench - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL 13 will come with partitioning support for pgbench\" \/>\n<meta property=\"og:description\" content=\"A lot of people use pgbench to benchmark a PostgreSQL instance and pgbench is also heavily used by the PostgreSQL developers. While declarative partitioning was introduced in PostgreSQL 10 there was no support for that in pgbench, even in the current version, which is PostgreSQL 12. With PostgreSQL 13, which is currently in development, this [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-30T12:32:16+00:00\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-will-come-with-partitioning-support-for-pgbench\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-will-come-with-partitioning-support-for-pgbench\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"headline\":\"PostgreSQL 13 will come with partitioning support for pgbench\",\"datePublished\":\"2019-10-30T12:32:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-will-come-with-partitioning-support-for-pgbench\\\/\"},\"wordCount\":149,\"commentCount\":0,\"keywords\":[\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-will-come-with-partitioning-support-for-pgbench\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-will-come-with-partitioning-support-for-pgbench\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-will-come-with-partitioning-support-for-pgbench\\\/\",\"name\":\"PostgreSQL 13 will come with partitioning support for pgbench - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2019-10-30T12:32:16+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-will-come-with-partitioning-support-for-pgbench\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-will-come-with-partitioning-support-for-pgbench\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-will-come-with-partitioning-support-for-pgbench\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL 13 will come with partitioning support for pgbench\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL 13 will come with partitioning support for pgbench - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL 13 will come with partitioning support for pgbench","og_description":"A lot of people use pgbench to benchmark a PostgreSQL instance and pgbench is also heavily used by the PostgreSQL developers. While declarative partitioning was introduced in PostgreSQL 10 there was no support for that in pgbench, even in the current version, which is PostgreSQL 12. With PostgreSQL 13, which is currently in development, this [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/","og_site_name":"dbi Blog","article_published_time":"2019-10-30T12:32:16+00:00","author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202"},"headline":"PostgreSQL 13 will come with partitioning support for pgbench","datePublished":"2019-10-30T12:32:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/"},"wordCount":149,"commentCount":0,"keywords":["PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/","url":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/","name":"PostgreSQL 13 will come with partitioning support for pgbench - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2019-10-30T12:32:16+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-will-come-with-partitioning-support-for-pgbench\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL 13 will come with partitioning support for pgbench"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12919"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12919\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12919"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12919"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12919"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}