PostgreSQL vs ToroDB

Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

PostgreSQL
PostgreSQL

17.3K
13.1K
+ 1
3.4K
ToroDB
ToroDB

0
3
+ 1
0
Add tool

PostgreSQL vs ToroDB: What are the differences?

Developers describe PostgreSQL as "A powerful, open source object-relational database system". PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. On the other hand, ToroDB is detailed as "Open source, document-oriented, JSON database that runs on top of PostgreSQL". ToroDB is an open source, document-oriented, JSON database that runs on top of PostgreSQL, providing storage and I/O savings and ACID semantics. ToroDB is MongoDB-compatible, so you can use Mongo clients to connect to it.

PostgreSQL and ToroDB belong to "Databases" category of the tech stack.

PostgreSQL and ToroDB are both open source tools. PostgreSQL with 5.44K GitHub stars and 1.8K forks on GitHub appears to be more popular than ToroDB with 10 GitHub stars and 2 GitHub forks.

What is PostgreSQL?

PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.

What is ToroDB?

ToroDB is an open source, document-oriented, JSON database that runs on top of PostgreSQL, providing storage and I/O savings and ACID semantics. ToroDB is MongoDB-compatible, so you can use Mongo clients to connect to it.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose PostgreSQL?
Why do developers choose ToroDB?
    Be the first to leave a pro

    Sign up to add, upvote and see more prosMake informed product decisions

      Be the first to leave a con
      What companies use PostgreSQL?
      What companies use ToroDB?
        No companies found

        Sign up to get full access to all the companiesMake informed product decisions

        What tools integrate with PostgreSQL?
        What tools integrate with ToroDB?

        Sign up to get full access to all the tool integrationsMake informed product decisions

        What are some alternatives to PostgreSQL and ToroDB?
        MySQL
        The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.
        MariaDB
        Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry. MariaDB is designed as a drop-in replacement of MySQL(R) with more features, new storage engines, fewer bugs, and better performance.
        Oracle
        Oracle Database is an RDBMS. An RDBMS that implements object-oriented features such as user-defined types, inheritance, and polymorphism is called an object-relational database management system (ORDBMS). Oracle Database has extended the relational model to an object-relational model, making it possible to store complex business models in a relational database.
        MongoDB
        MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
        SQLite
        SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL database with multiple tables, indices, triggers, and views, is contained in a single disk file.
        See all alternatives
        Decisions about PostgreSQL and ToroDB
        Anton Sidelnikov
        Anton Sidelnikov
        Backend Developer at Beamery · | 6 upvotes · 9.1K views
        PostgreSQL
        PostgreSQL
        MongoDB
        MongoDB

        In my opinion PostgreSQL is totally over MongoDB - not only works with structured data & SQL & strict types, but also has excellent support for unstructured data as separate data type (you can store arbitrary JSONs - and they may be also queryable, depending on one of format's you may choose). Both writes & reads are much faster, then in Mongo. So you can get best on Document NoSQL & SQL in single database..

        Formal downside of PostgreSQL is clustering scalability. There's not simple way to build distributed a cluster. However, two points:

        1) You will need much more time before you need to actually scale due to PG's efficiency. And if you follow database-per-service pattern, maybe you won't need ever, cause dealing few billion records on single machine is an option for PG.

        2) When you need to - you do it in a way you need, including as a part of app's logic (e.g. sharding by key, or PG-based clustering solution with strict model), scalability will be very transparent, much more obvious than Mongo's "cluster just works (but then fails)" replication.

        See more
        Yonas Beshawred
        Yonas Beshawred
        CEO at StackShare · | 9 upvotes · 28.7K views
        atStackShareStackShare
        MemCachier
        MemCachier
        PostgreSQL
        PostgreSQL
        Rails
        Rails
        Amazon ElastiCache
        Amazon ElastiCache
        Heroku
        Heroku
        Memcached
        Memcached
        #Caching
        #RailsCaching

        We decided to use MemCachier as our Memcached provider because we were seeing some serious PostgreSQL performance issues with query-heavy pages on the site. We use MemCachier for all Rails caching and pretty aggressively too for the logged out experience (fully cached pages for the most part). We really need to move to Amazon ElastiCache as soon as possible so we can stop paying so much. The only reason we're not moving is because there are some restrictions on the network side due to our main app being hosted on Heroku.

        #Caching #RailsCaching

        See more
        John Kodumal
        John Kodumal
        CTO at LaunchDarkly · | 15 upvotes · 176.7K views
        atLaunchDarklyLaunchDarkly
        Amazon RDS
        Amazon RDS
        PostgreSQL
        PostgreSQL
        TimescaleDB
        TimescaleDB
        Patroni
        Patroni
        Consul
        Consul
        Amazon ElastiCache
        Amazon ElastiCache
        Amazon EC2
        Amazon EC2
        Redis
        Redis
        Amazon Kinesis
        Amazon Kinesis
        Kafka
        Kafka

        As we've evolved or added additional infrastructure to our stack, we've biased towards managed services. Most new backing stores are Amazon RDS instances now. We do use self-managed PostgreSQL with TimescaleDB for time-series data—this is made HA with the use of Patroni and Consul.

        We also use managed Amazon ElastiCache instances instead of spinning up Amazon EC2 instances to run Redis workloads, as well as shifting to Amazon Kinesis instead of Kafka.

        See more
        Joshua Dean Küpper
        Joshua Dean Küpper
        CEO at Scrayos UG (haftungsbeschränkt) · | 5 upvotes · 48.2K views
        atScrayos UG (haftungsbeschränkt)Scrayos UG (haftungsbeschränkt)
        MariaDB
        MariaDB
        PostgreSQL
        PostgreSQL
        GitLab
        GitLab
        Sentry
        Sentry

        We primarily use MariaDB but use PostgreSQL as a part of GitLab , Sentry and @Nextcloud , which (initially) forced us to use it anyways. While this isn't much of a decision – because we didn't have one (ha ha) – we learned to love the perks and advantages of PostgreSQL anyways. PostgreSQLs extension system makes it even more flexible than a lot of the other SQL-based DBs (that only offer stored procedures) and the additional JOIN options, the enhanced role management and the different authentication options came in really handy, when doing manual maintenance on the databases.

        See more
        Alex A
        Alex A
        Founder at PRIZ Guru · | 6 upvotes · 8.5K views
        atPRIZ GuruPRIZ Guru
        MySQL
        MySQL
        PostgreSQL
        PostgreSQL

        One of our battles at the very beginning of the road was choosing the right database. In fact, our first prototype was built on MySQL and back then nothing else was even under a consideration (don't ask me why). At some point, I was working on a project which was running on PostgreSQL and it is only then I understood the full power of it. We have over a billion of records in production instance, and we are able to optimize it to run fast and reliable. Well, now my default DB is PostgreSQL :)

        See more
        Tim Nolet
        Tim Nolet
        Founder, Engineer & Dishwasher at Checkly · | 8 upvotes · 63.6K views
        atChecklyHQChecklyHQ
        PostgreSQL
        PostgreSQL
        Heroku
        Heroku
        Node.js
        Node.js
        MongoDB
        MongoDB
        Amazon DynamoDB
        Amazon DynamoDB

        PostgreSQL Heroku Node.js MongoDB Amazon DynamoDB

        When I started building Checkly, one of the first things on the agenda was how to actually structure our SaaS database model: think accounts, users, subscriptions etc. Weirdly, there is not a lot of information on this on the "blogopshere" (cringe...). After research and some false starts with MongoDB and Amazon DynamoDB we ended up with PostgreSQL and a schema consisting of just four tables that form the backbone of all generic "Saasy" stuff almost any B2B SaaS bumps into.

        In a nutshell:cPostgreSQL Heroku Node.js MongoDB Amazon DynamoDB

        When I started building Checkly, one of the first things on the agenda was how to actually structure our SaaS database model: think accounts, users, subscriptions etc. Weirdly, there is not a lot of information on this on the "blogopshere" (cringe...). After research and some false starts with MongoDB and Amazon DynamoDB we ended up with PostgreSQL and a schema consisting of just four tables that form the backbone of all generic "Saasy" stuff almost any B2B SaaS bumps into.

        In a nutshell:

        • We use Postgres on Heroku.
        • We use a "one database, on schema" approach for partitioning customer data.
        • We use an accounts, memberships and users table to create a many-to-many relation between users and accounts.
        • We completely decouple prices, payments and the exact ingredients for a customer's plan.

        All the details including a database schema diagram are in the linked blog post.

        See more
        Łukasz Korecki
        Łukasz Korecki
        CTO & Co-founder at EnjoyHQ · | 12 upvotes · 46.2K views
        atEnjoyHQEnjoyHQ
        RethinkDB
        RethinkDB
        MongoDB
        MongoDB
        PostgreSQL
        PostgreSQL

        We initially chose RethinkDB because of the schema-less document store features, and better durability resilience/story than MongoDB In the end, it didn't work out quite as we expected: there's plenty of scalability issues, it's near impossible to run analytical workloads and small community makes working with Rethink a challenge. We're in process of migrating all our workloads to PostgreSQL and hopefully, we will be able to decommission our RethinkDB deployment soon.

        See more
        Mauro Bennici
        Mauro Bennici
        CTO at You Are My GUide · | 7 upvotes · 11.8K views
        atYou Are My GUideYou Are My GUide
        PostgreSQL
        PostgreSQL
        TimescaleDB
        TimescaleDB
        MongoDB
        MongoDB

        PostgreSQL plus TimescaleDB allow us to concentrate the business effort on how to analyze valuable data instead of manage them on IT side. We are now able to ingest thousand of social shares "managed" data without compromise the scalability of the system or the time query. TimescaleDB is transparent to PostgreSQL , so we continue to use the same SQL syntax without any changes. At the same time, because we need to manage few document objects we dismissed the MongoDB cluster.

        See more
        Tor Hagemann
        Tor Hagemann
        at Socotra · | 2 upvotes · 2.2K views
        atSocotraSocotra
        MySQL
        MySQL
        PostgreSQL
        PostgreSQL
        Amazon DynamoDB
        Amazon DynamoDB

        Much of our data model is relational, which makes MySQL or PostgreSQL (and family) fit the API's we need to build, in order to meet the needs of our customers.

        Sometimes the flexibility of a NoSQL store like Amazon DynamoDB is very useful, but the lack of consistency really impacts usability and performance long-term, compared with viable alternatives. At our current scale, we've seen huge benefits from moving some of our tables out of Dynamo and doing more in SQL.

        There will always be use cases for NoSQL and key-values stores, but if your model is well understood in your business/industry: relational databases are the way to go after finding product-market fit. Always understand the trade-offs (and a few intimate details) of any data store before you add to your company's stack!

        See more
        Joseph Irving
        Joseph Irving
        DevOps Engineer at uSwitch · | 8 upvotes · 8K views
        atuSwitchuSwitch
        Vault
        Vault
        Kubernetes
        Kubernetes
        MySQL
        MySQL
        PostgreSQL
        PostgreSQL
        Go
        Go

        At uSwitch we use Vault to generate short lived database credentials for our applications running in Kubernetes. We wanted to move from an environment where we had 100 dbs with a variety of static passwords being shared around to a place where each pod would have credentials that only last for its lifetime.

        We chose vault because:

        • It had built in Kubernetes support so we could use service accounts to permission which pods could access which database.

        • A terraform provider so that we could configure both our RDS instances and their vault configuration in one place.

        • A variety of database providers including MySQL/PostgreSQL (our most common dbs).

        • A good api/Go -sdk so that we could build tooling around it to simplify development worfklow.

        • It had other features we would utilise such as PKI

        See more
        Daniel Quinn
        Daniel Quinn
        Senior Developer at Workfinder · | 2 upvotes · 31.7K views
        atThe Paperless ProjectThe Paperless Project
        SQLite
        SQLite
        PostgreSQL
        PostgreSQL

        SQLite is a tricky beast. It's great if you're working single-threaded, but a Terrible Idea if you've got more than one concurrent connection. You use it because it's easy to setup, light, and portable (it's just a file).

        In Paperless, we've built a self-hosted web application, so it makes sense to standardise on something small & light, and as we don't have to worry about multiple connections (it's just you using the app), it's a perfect fit.

        For users wanting to scale Paperless up to a multi-user environment though, we do provide the hooks to switch to PostgreSQL .

        See more
        Robert Zuber
        Robert Zuber
        CTO at CircleCI · | 22 upvotes · 216.3K views
        atCircleCICircleCI
        MongoDB
        MongoDB
        PostgreSQL
        PostgreSQL
        Redis
        Redis
        GitHub
        GitHub
        Amazon S3
        Amazon S3

        We use MongoDB as our primary #datastore. Mongo's approach to replica sets enables some fantastic patterns for operations like maintenance, backups, and #ETL.

        As we pull #microservices from our #monolith, we are taking the opportunity to build them with their own datastores using PostgreSQL. We also use Redis to cache data we’d never store permanently, and to rate-limit our requests to partners’ APIs (like GitHub).

        When we’re dealing with large blobs of immutable data (logs, artifacts, and test results), we store them in Amazon S3. We handle any side-effects of S3’s eventual consistency model within our own code. This ensures that we deal with user requests correctly while writ