Comparing PostgreSQL DigitalOcean Performance & Pricing – ScaleGrid vs. DigitalOcean Managed Databases
Tags: postgres, digitalocean, database, developer
Published: 2020-06-04 18:57:49

---
title: Comparing PostgreSQL DigitalOcean Performance & Pricing – ScaleGrid vs. DigitalOcean Managed Databases
published: true
description: Which PostgreSQL hosting services offers the best performance? Compare ScaleGrid vs. DigitalOcean Managed Databases on Throughput, Latency, Pricing and Features
tags: PostgreSQL, DigitalOcean, Database, Developer,
//cover_image: https://scalegrid.io/blog/wp-content/uploads/2020/06/Comparing-PostgreSQL-DigitalOcean-Performance-and-Pricing-ScaleGrid-vs-DigitalOcean-Managed-Databases.jpg
---
<link rel="canonical" href="https://scalegrid.io/blog/comparing-postgresql-digitalocean-performance-pricing-scalegrid-vs-digitalocean-managed-databases/" />
<p style="text-align: justify;"><a href="https://scalegrid.io/blog/comparing-postgresql-digitalocean-performance-pricing-scalegrid-vs-digitalocean-managed-databases/"><img class="alignnone size-full wp-image-5425" src="https://scalegrid.io/blog/wp-content/uploads/2020/06/Comparing-PostgreSQL-DigitalOcean-Performance-and-Pricing-ScaleGrid-vs-DigitalOcean-Managed-Databases.jpg" alt="Comparing PostgreSQL DigitalOcean Performance & Pricing – ScaleGrid vs. DigitalOcean Managed Databases" width="100%" height="auto" /></a></p>
<p style="text-align: justify;">DigitalOcean is a cost-effective cloud provider that caters to, and is widely adopted by the developer community. ScaleGrid is a fully managed DBaaS that supports MySQL, PostgreSQL and Redis™, along with additional support for MongoDB® database and Greenplum® database. Along with many popular cloud providers, DigitalOcean also provides a <a style="color: #2da964;" href="https://www.digitalocean.com/products/managed-databases/" rel="nofollow" target="_blank">Managed Databases</a> service. They support PostgreSQL, MySQL and Redis, but for the sake of this article, we are going to focus on their PostgreSQL product. So, which database service is right for your application? In this post, we are going to compare the performance and pricing of DigitalOcean PostgreSQL vs. ScaleGrid PostgreSQL to help you determine the best <a style="color: #2da964;" href="https://scalegrid.io/postgresql.html" target="_blank">PostgreSQL hosting</a> service on DigitalOcean.</p>
<p style="text-align: justify;"><a href="https://scalegrid.io/blog/comparing-postgresql-digitalocean-performance-pricing-scalegrid-vs-digitalocean-managed-databases/">Compare PostgreSQL DigitalOcean Performance</a>
<p style="text-align: justify; padding-bottom: 15px;">PostgreSQL is one of the fastest growing databases, and <a style="color: #2da964;" href="https://db-engines.com/en/ranking" target="_blank">#4 database in the world</a> by popularity. As an open source database, it’s a highly popular choice for enterprise applications looking to modernize their infrastructure and reduce their total cost of ownership, along with <a style="color: #2da964;" href="https://scalegrid.io/pricing/offers/startup-program.html" target="_blank">startup and developer applications</a> looking for a powerful, flexible and cost-effective database to work with.</p>


<h2 style="padding-top: 15px;">PostgreSQL DigitalOcean Performance Test</h2>
<p style="text-align: justify; padding-bottom: 15px;">In order to see which DBaaS provides the best PostgreSQL hosting performance on DigitalOcean, we are comparing equivalent plan sizes between <a style="color: #2da964;" href="https://scalegrid.io/postgresql/digitalocean.html" target="_blank">ScaleGrid PostgreSQL on DigitalOcean</a> and DigitalOcean Managed Databases:</p>

<table width="100%">
<tbody>
<tr>
<th width="30%"></th>
<th width="35%" style="background-color: #2da964; padding: 10px; color: #fff;"><b>ScaleGrid PostgreSQL</b></th>
<th width="35%" style="background-color: #273039; padding: 10px; color: #fff;"><b>DigitalOcean PostgreSQL</b></th>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;">Instance Type/RAM</td>
<td style="border: 1px solid #eee; padding: 10px;">Large - 16GB RAM</td>
<td style="border: 1px solid #eee; padding: 10px;">16GB RAM</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;">Storage</td>
<td style="border: 1px solid #eee; padding: 10px;">300GB</td>
<td style="border: 1px solid #eee; padding: 10px;">270GB</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;">Deployment Type</td>
<td style="border: 1px solid #eee; padding: 10px;">Single Node</td>
<td style="border: 1px solid #eee; padding: 10px;">Single Node</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;">DigitalOcean Region</td>
<td style="border: 1px solid #eee; padding: 10px;">SFO3</td>
<td style="border: 1px solid #eee; padding: 10px;">SFO3</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;">Monthly Cost (USD)</td>
<td style="border: 1px solid #eee; padding: 10px;"><a style="color: #2da964;" href="https://scalegrid.io/pricing.html?db=POSTGRESQL&cloud=cloud_digital_ocean&replica=deployment_standalone&instance=Large#section_pricing_dedicated" target="_blank">$240</a></td>
<td style="border: 1px solid #eee; padding: 10px;"><a style="color: #2da964;" href="https://www.digitalocean.com/pricing/" rel="nofollow" target="_blank">$240</a></td>
</tr>
</tbody>
</table>
<p style="text-align: justify; padding-top: 15px;">As you can see above, the monthly cost and cluster RAM configurations we are using for ScaleGrid and DigitalOcean are the exact same. Now, let’s take a look at the throughput and latency performance of our comparison.</p>



<h3 style="padding-top: 15px;"><a id="1"></a>Throughput</h3>
<p style="text-align: justify; padding-bottom: 15px;">We measure PostgreSQL throughput in terms of transactions processed. Throughput in general is the rate at which something is processed, and in terms of PostgreSQL, this is the number of transactions per second (TPS) your application can handle.</p>
<p style="text-align: justify; padding-bottom:15px;"><a href="https://scalegrid.io/blog/comparing-postgresql-digitalocean-performance-pricing-scalegrid-vs-digitalocean-managed-databases/#1"><img class="alignnone size-full wp-image-5402" src="https://scalegrid.io/blog/wp-content/uploads/2020/06/ScaleGrid-vs-DigitalOcean-PostgreSQL-Throughput-Chart.jpg" alt="ScaleGrid vs. DigitalOcean PostgreSQL Throughput - Bar Graph" width="100%" height="auto" /></a></p>
<table width="100%" style="margin-top: 15px;">
<tbody>
<tr>
<td style="padding: 15px; background: #def5fe;"><span style="font-size:18px; font-weight:bold;">ScaleGrid PostgreSQL provides 68% higher throughput for write-intensive workloads and 94% higher throughput for balanced workloads on average compared to DigitalOcean for PostgreSQL.</span> </td>
</tr>
</tbody>
</table>

<p style="text-align: justify; padding-top:15px;">This means that ScaleGrid is able to process almost 2x the amount of transactions as DigitalOcean across the same deployment configurations!</p>

<h3 style="padding-top: 15px;"><a id="2"></a>Latency</h3>
<p style="text-align: justify; padding-bottom: 15px;">Next, we are going to test and compare the latency performance between ScaleGrid and DigitalOcean for PostgreSQL. Latency is the average transaction execution time of your PostgreSQL data. Here is how both providers performed across workload types for the PostgreSQL configurations outlined above:</p>
<p style="text-align: justify;"><a href="https://scalegrid.io/blog/comparing-postgresql-digitalocean-performance-pricing-scalegrid-vs-digitalocean-managed-databases/#2"><img class="alignnone size-full wp-image-5404" src="https://scalegrid.io/blog/wp-content/uploads/2020/06/ScaleGrid-vs-DigitalOcean-PostgreSQL-Latency-Chart.jpg" alt="ScaleGrid vs. DigitalOcean PostgreSQL - Latency Bar Chart" width="100%" height="auto" /></a></p>

<table width="100%" style="margin-top: 15px;">
<tbody>
<tr>
<td style="padding: 15px; background: #def5fe;"><span style="font-size:18px; font-weight:bold;">ScaleGrid PostgreSQL provides on average 42.3% lower latency across all workload types compared to DigitalOcean for PostgreSQL.</span> </td>
</tr>
</tbody>
</table>

<p style="text-align: justify; padding-top: 15px;">While the performance is significantly better across the board, the most noticeable improvement can be seen in the balanced workload scenario where they achieved over 48% lower latency than DigitalOcean Managed Databases.</p>





<h3 style="padding-top: 15px;">Analysis</h3>
<p style="text-align: justify; padding-bottom: 15px;">As we can tell from the above graphs, ScaleGrid PostgreSQL can help you achieve almost 2x better performance in terms of both throughput and latency across these common workload scenarios:</p>

<table width="100%">
<tbody>
<tr>
<th style="width: 36%;"><b>PostgreSQL DigitalOcean Throughput Averages</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #2da964; color: #fff;"><b>ScaleGrid</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>DigitalOcean</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #def5fe;"><b>ScaleGrid Improvement</b></th>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">Read-Intensive</td>
<td style="padding: 10px; border: 1px solid #eee;">3,328</td>
<td style="padding: 10px; border: 1px solid #eee;">2,056</td>
<td style="padding: 10px; border: 1px solid #eee;">61.9%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">Balanced Workload</td>
<td style="padding: 10px; border: 1px solid #eee;">7,998</td>
<td style="padding: 10px; border: 1px solid #eee;">4,121</td>
<td style="padding: 10px; border: 1px solid #eee;">94.1%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">Write-Intensive</td>
<td style="padding: 10px; border: 1px solid #eee;">4,584</td>
<td style="padding: 10px; border: 1px solid #eee;">2,736</td>
<td style="padding: 10px; border: 1px solid #eee;">67.5%</td>
</tr>
</tbody>
</table>
<p style="text-align: justify; padding-bottom: 15px; padding-top: 25px;">ScaleGrid PostgreSQL averages 74.5% higher throughput performance over DigitalOcean Managed Databases for PostgreSQL.</p>

<table class=" alignleft">
<tbody>
<tr>
<th style="width: 36%;"><b>PostgreSQL DigitalOcean Latency Averages (ms)</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #2da964; color: #fff;"><b>ScaleGrid</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>DigitalOcean</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #def5fe;"><b>ScaleGrid Improvement</b></th>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">Read-Intensive</td>
<td style="padding: 10px; border: 1px solid #eee;">54.1</td>
<td style="padding: 10px; border: 1px solid #eee;">87.6</td>
<td style="padding: 10px; border: 1px solid #eee;">-38.2%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">Balanced Workload</td>
<td style="padding: 10px; border: 1px solid #eee;">22.5</td>
<td style="padding: 10px; border: 1px solid #eee;">43.7</td>
<td style="padding: 10px; border: 1px solid #eee;">-48.5%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">Write-Intensive</td>
<td style="padding: 10px; border: 1px solid #eee;">39.3</td>
<td style="padding: 10px; border: 1px solid #eee;">65.8</td>
<td style="padding: 10px; border: 1px solid #eee;">-40.3%</td>
</tr>
</tbody>
</table>
<p style="text-align: justify; padding-top: 15px;">ScaleGrid PostgreSQL averages 42.3% lower latency performance over DigitalOcean Managed Databases for PostgreSQL.</p>
<p style="text-align: justify;">How does ScaleGrid achieve such higher performance for PostgreSQL compared to DigitalOcean’s PostgreSQL service using the exact same deployment configurations? ScaleGrid for PostgreSQL is architectured to leverage-high performance SSD disks on DigitalOcean, and is finely tuned and optimized to achieve the best performance on DigitalOcean infrastructure.</p>

<h3 style="padding-top: 15px;">PostgreSQL Benchmark Setup</h3>
<p style="text-align: justify; padding-bottom: 15px;">Here is the configuration we used for the ScaleGrid and DigitalOcean benchmark performance tests highlighted above:</p>

<table width="100%">
<tbody>
<tr>
<th style="width: 50%; padding: 10px; border: 1px solid #eee; background: #def5fe;"><b>Configuration</b></th>
<th style="width: 50%; padding: 10px; border: 1px solid #eee; background: #def5fe;"><b>Details</b></th>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Benchmark Tool</td>
<td style="padding: 8px 10px; border: 1px solid #eee;"><a style="color: #2da964;" href="https://www.postgresql.org/docs/10/pgbench.html" target="_blank">PgBench</a></td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">PostgreSQL Version</td>
<td style="padding: 8px 10px; border: 1px solid #eee;"><a style="color: #2da964;" href="https://www.postgresql.org/docs/11/index.html" target="_blank">11</a></td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Scaling Factor</td>
<td style="padding: 8px 10px; border: 1px solid #eee;">10,000</td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Query Mode</td>
<td style="padding: 8px 10px; border: 1px solid #eee;">Simple</td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Number of Clients</td>
<td style="padding: 8px 10px; border: 1px solid #eee;">180</td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Number of Threads</td>
<td style="padding: 8px 10px; border: 1px solid #eee;">10</td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Duration</td>
<td style="padding: 8px 10px; border: 1px solid #eee;">1,800 seconds</td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">synchronous_commit</td>
<td style="padding: 8px 10px; border: 1px solid #eee;">off</td>
</tr>
</tbody>
</table>
<p style="text-align: justify; padding-top: 15px;">In order to help you determine which provider is best for you, we compared PostgreSQL performance on DigitalOcean across all three common workload types:</p>

<h4 style="padding-top: 15px;">Write-Intensive Workload</h4>
<p style="text-align: justify;">A write-intensive workload is one that is primarily dominated by write operations, and has more data written to the disk through queries like UPDATE and INSERT. We used 20% reads and 80% writes in this comparison, using standard TPC-B type transactions where each transaction consists of 3 updates, 1 insert and 1 select operation.</p>

<h4 style="padding-top: 15px;">Balanced Workload</h4>
<p style="text-align: justify;">A balanced workload is one that has an equally balanced number of read operations and write operations. We used 50% reads and 50% writes in this comparison. A single transaction consisted of 1 select and 1 update operation.</p>

<h4 style="padding-top: 15px;">Read-Intensive Workload</h4>
<p style="text-align: justify;">A read-intensive workload is one that is primarily dominated by read operations sent to the disk, and typically has more query types like SELECT. We used 80% reads and 20% writes in this comparison. A single transaction consisted of 4 select and 1 update operation.</p>


<h2 style="padding-top: 15px;"><a id="3"></a>PostgreSQL DigitalOcean Pricing</h2>
<p style="text-align: justify; padding-bottom: 15px;">One of the first aspects to consider before adopting any new service is its cost. Fortunately, when comparing ScaleGrid vs. DigitalOcean PostgreSQL, pricing is not a major consideration because both offer extremely affordable plans at the exact same price. Let’s take a look at the various configurations:</p>
<p style="text-align: justify;"><a href="https://scalegrid.io/blog/comparing-postgresql-digitalocean-performance-pricing-scalegrid-vs-digitalocean-managed-databases/#3"><img class="alignnone size-full wp-image-5425" src="https://scalegrid.io/blog/wp-content/uploads/2020/06/ScaleGrid-vs-DigitalOcean-PostgreSQL-Pricing-Chart.jpg" alt="ScaleGrid vs. DigitalOcean PostgreSQL Pricing - Bar Chart" width="100%" height="auto" /></a></p>
<p style="text-align: justify;">As you can see from the above chart, both ScaleGrid PostgreSQL and DigitalOcean PostgreSQL offer standalone (1 data-bearing node), primary-standby (2 data-bearing nodes) and primary-standby-standby (3 data-bearing node) configurations.</p>
<p style="text-align: justify;">DigitalOcean Managed Database pricing is the same as ScaleGrid’s DBaaS pricing across all PostgreSQL plans, as well as their <a style="color: #2da964;" href="https://scalegrid.io/mysql.html" target="_blank">MySQL</a> and <a style="color: #2da964;" href="https://scalegrid.io/redis.html" target="_blank">Redis</a> plans, at just $15/GB for their standalone plans. ScaleGrid does offer some advanced configurations, such as standby nodes for their Nano plan, a standalone configuration for their 64GB X2XLarge plan, and an X4XLarge plan with 96GB for even larger-scale deployments.</p>


<p style="text-align: justify;">While ScaleGrid and DigitalOcean charge the same amount by RAM, ScaleGrid offers, on average, over 30% more storage for the same price. Additionally, ScaleGrid supports DigitalOcean hosting for <a style="color: #2da964;" href="https://scalegrid.io/mongodb.html" target="_blank">MongoDB® database</a>, and is the only DBaaS to support this database cloud deployment.</p>

<h2 style="padding-top: 15px;">PostgreSQL DigitalOcean Features</h2>
<p style="text-align: justify; padding-bottom: 15px;">So, now that we’ve outlined performance and pricing, are there any other major considerations when deciding between ScaleGrid and DigitalOcean? Let’s take a look at some key features to wrap up this comparison:</p>

<table>
<tbody>
<tr>
<th width="33.3%"></th>
<th style="background-color: #2da964; padding: 10px; color: #fff;" width="33.3%"><b>ScaleGrid PostgreSQL</b></th>
<th style="background-color: #273039; padding: 10px; color: #fff;" width="33.3%"><b>DigitalOcean PostgreSQL</b></th>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;"><b>Supported PostgreSQL Versions</b></td>
<td style="border: 1px solid #eee; padding: 10px;">9.6x, 10.x, 11.x, 12.x</td>
<td style="border: 1px solid #eee; padding: 10px;">10.x, 11.x</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;"><b>PostgreSQL Superuser Access</b></td>
<td style="border: 1px solid #eee; padding: 10px;">Yes</td>
<td style="border: 1px solid #eee; padding: 10px;">No</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;"><b>Unlimited PostgreSQL Extensions</b></td>
<td style="border: 1px solid #eee; padding: 10px;">Yes</td>
<td style="border: 1px solid #eee; padding: 10px;">No</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;"><b>Replication Strategies</b></td>
<td style="border: 1px solid #eee; padding: 10px;">Synchronous &amp; asynchronous</td>
<td style="border: 1px solid #eee; padding: 10px;">Asynchronous</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;"><b>Multi-Region Replication</b></td>
<td style="border: 1px solid #eee; padding: 10px;">Yes</td>
<td style="border: 1px solid #eee; padding: 10px;">Only for read replicas</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;"><b>PostgreSQL Configuration Management &amp; Tuning</b></td>
<td style="border: 1px solid #eee; padding: 10px;">Yes</td>
<td style="border: 1px solid #eee; padding: 10px;">No</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;"><b>High Availability</b></td>
<td style="border: 1px solid #eee; padding: 10px;">Yes</td>
<td style="border: 1px solid #eee; padding: 10px;">Yes</td>
</tr>
<tr>
<td style="border: 1px solid #eee; padding: 10px; background: #f9f9f9;"><b>Continuous Backup</b></td>
<td style="border: 1px solid #eee; padding: 10px;">Coming soon</td>
<td style="border: 1px solid #eee; padding: 10px;">Yes</td>
</tr>
</tbody>
</table>
<p style="text-align: justify; padding-top: 15px; padding-bottom: 25px;">For the sake of brevity, this is a summarized list. To see the full feature comparison, check out our <a style="color: #2da964;" href="https://scalegrid.io/postgresql/hosting-comparison/scalegrid-vs-digitalocean.html" target="_blank">ScaleGrid vs. DigitalOcean PostgreSQL</a> page.</p>