Alternatives to TiDB logo

Alternatives to TiDB

MySQL, CockroachDB, Cassandra, Vitess, and MongoDB are the most popular alternatives and competitors to TiDB.
74
174
+ 1
28

What is TiDB and what are its top alternatives?

TiDB is a distributed SQL database that is inspired by Google Spanner and F1. It combines the horizontal scalability of NoSQL with the ACID compliance of traditional RDBMS. TiDB features a horizontally scalable architecture, strong consistency, and support for a wide range of data types. However, TiDB has certain limitations such as high memory consumption, lack of advanced indexing options, and limited support for complex queries.

  1. CockroachDB: CockroachDB is a distributed SQL database that offers horizontal scalability, strong consistency, and automatic sharding. It is highly resilient and fault-tolerant, making it a suitable alternative to TiDB. Pros include distributed transactions and geo-partitioning, while cons include a slightly higher learning curve compared to TiDB.
  2. Vitess: Vitess is a database clustering system for horizontal scaling of MySQL through generalized sharding. It provides MySQL compatibility with horizontal scalability, making it an excellent alternative to TiDB. Pros include seamless MySQL integration and cloud-native deployment options, while cons include limited support for complex queries.
  3. YugabyteDB: YugabyteDB is a distributed SQL database designed for high performance and resilience. It offers multi-region deployment, strong consistency, and automatic sharding, making it a strong contender against TiDB. Pros include PostgreSQL compatibility and advanced indexing options, while cons include complexity in set up and configuration.
  4. Citus: Citus is a distributed database that extends PostgreSQL for horizontal scaling. It offers scalability, multi-tenancy support, and real-time analytics, making it a viable alternative to TiDB. Pros include seamless integration with PostgreSQL and advanced query optimization, while cons include limited support for some SQL features.
  5. NuoDB: NuoDB is a distributed SQL database that provides elastic scalability, high availability, and strong consistency. It is suitable for cloud-native applications and offers features comparable to TiDB. Pros include distributed architecture and global data distribution, while cons include potential performance bottlenecks in certain use cases.
  6. Spanner: Spanner is a globally distributed database service from Google Cloud that offers horizontal scalability, strong consistency, and high availability. It is a powerful alternative to TiDB with features like automatic replication and global data distribution. Pros include tight integration with Google Cloud services and robust security features, while cons include higher cost compared to self-hosted solutions like TiDB.
  7. MemSQL: MemSQL is a distributed SQL database that combines in-memory performance with horizontal scalability. It offers real-time analytics, high throughput, and advanced indexing options, making it a suitable alternative to TiDB. Pros include in-memory capabilities and cloud-native deployment, while cons include higher memory consumption in certain scenarios.
  8. HBase: HBase is a distributed, scalable, and consistent NoSQL database built on top of Apache Hadoop. It provides high availability, fault tolerance, and linear scalability, making it a viable alternative to TiDB for certain use cases. Pros include seamless integration with Hadoop ecosystem and strong consistency model, while cons include limited support for complex queries compared to TiDB.
  9. FaunaDB: FaunaDB is a distributed, transactional database designed for modern cloud applications. It offers global distribution, ACID transactions, and GraphQL support, making it a strong contender against TiDB. Pros include serverless architecture and flexible data modeling, while cons include potential performance overhead in certain scenarios.
  10. ScyllaDB: ScyllaDB is a distributed NoSQL database that is compatible with Apache Cassandra. It provides high availability, low latency, and linear scalability, making it a competitive alternative to TiDB for certain use cases. Pros include CQL compatibility and high throughput, while cons include potentially complex data modeling compared to TiDB.

Top Alternatives to TiDB

  • MySQL
    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. ...

  • CockroachDB
    CockroachDB

    CockroachDB is distributed SQL database that can be deployed in serverless, dedicated, or on-prem. Elastic scale, multi-active availability for resilience, and low latency performance. ...

  • Cassandra
    Cassandra

    Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL. ...

  • Vitess
    Vitess

    It is a database solution for deploying, scaling and managing large clusters of MySQL instances. It’s architected to run as effectively in a public or private cloud architecture as it does on dedicated hardware. It combines and extends many important MySQL features with the scalability of a NoSQL database. ...

  • MongoDB
    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. ...

  • Clickhouse
    Clickhouse

    It allows analysis of data that is updated in real time. It offers instant results in most cases: the data is processed faster than it takes to create a query. ...

  • PostgreSQL
    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. ...

  • Apache Aurora
    Apache Aurora

    Apache Aurora is a service scheduler that runs on top of Mesos, enabling you to run long-running services that take advantage of Mesos' scalability, fault-tolerance, and resource isolation. ...

TiDB alternatives & related posts

MySQL logo

MySQL

124.5K
105.3K
3.8K
The world's most popular open source database
124.5K
105.3K
+ 1
3.8K
PROS OF MYSQL
  • 800
    Sql
  • 679
    Free
  • 562
    Easy
  • 528
    Widely used
  • 490
    Open source
  • 180
    High availability
  • 160
    Cross-platform support
  • 104
    Great community
  • 79
    Secure
  • 75
    Full-text indexing and searching
  • 26
    Fast, open, available
  • 16
    Reliable
  • 16
    SSL support
  • 15
    Robust
  • 9
    Enterprise Version
  • 7
    Easy to set up on all platforms
  • 3
    NoSQL access to JSON data type
  • 1
    Relational database
  • 1
    Easy, light, scalable
  • 1
    Sequel Pro (best SQL GUI)
  • 1
    Replica Support
CONS OF MYSQL
  • 16
    Owned by a company with their own agenda
  • 3
    Can't roll back schema changes

related MySQL posts

Nick Rockwell
SVP, Engineering at Fastly · | 46 upvotes · 3.8M views

When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

See more
Tim Abbott

We've been using PostgreSQL since the very early days of Zulip, but we actually didn't use it from the beginning. Zulip started out as a MySQL project back in 2012, because we'd heard it was a good choice for a startup with a wide community. However, we found that even though we were using the Django ORM for most of our database access, we spent a lot of time fighting with MySQL. Issues ranged from bad collation defaults, to bad query plans which required a lot of manual query tweaks.

We ended up getting so frustrated that we tried out PostgresQL, and the results were fantastic. We didn't have to do any real customization (just some tuning settings for how big a server we had), and all of our most important queries were faster out of the box. As a result, we were able to delete a bunch of custom queries escaping the ORM that we'd written to make the MySQL query planner happy (because postgres just did the right thing automatically).

And then after that, we've just gotten a ton of value out of postgres. We use its excellent built-in full-text search, which has helped us avoid needing to bring in a tool like Elasticsearch, and we've really enjoyed features like its partial indexes, which saved us a lot of work adding unnecessary extra tables to get good performance for things like our "unread messages" and "starred messages" indexes.

I can't recommend it highly enough.

See more
CockroachDB logo

CockroachDB

211
337
0
A distributed SQL database that scales fast, survives disaster, and thrives everywhere
211
337
+ 1
0
PROS OF COCKROACHDB
    Be the first to leave a pro
    CONS OF COCKROACHDB
      Be the first to leave a con

      related CockroachDB posts

      Lucas Litton
      Founder & CEO at Macombey · | 1 upvote · 12.2K views

      Just like Go, our team. uses CockroachDB because of the speed and the great integrations with Go and Node.js.

      See more
      Cassandra logo

      Cassandra

      3.6K
      3.5K
      507
      A partitioned row store. Rows are organized into tables with a required primary key.
      3.6K
      3.5K
      + 1
      507
      PROS OF CASSANDRA
      • 119
        Distributed
      • 98
        High performance
      • 81
        High availability
      • 74
        Easy scalability
      • 53
        Replication
      • 26
        Reliable
      • 26
        Multi datacenter deployments
      • 10
        Schema optional
      • 9
        OLTP
      • 8
        Open source
      • 2
        Workload separation (via MDC)
      • 1
        Fast
      CONS OF CASSANDRA
      • 3
        Reliability of replication
      • 1
        Size
      • 1
        Updates

      related Cassandra posts

      Thierry Schellenbach
      Shared insights
      on
      GolangGolangPythonPythonCassandraCassandra
      at

      After years of optimizing our existing feed technology, we decided to make a larger leap with 2.0 of Stream. While the first iteration of Stream was powered by Python and Cassandra, for Stream 2.0 of our infrastructure we switched to Go.

      The main reason why we switched from Python to Go is performance. Certain features of Stream such as aggregation, ranking and serialization were very difficult to speed up using Python.

      We’ve been using Go since March 2017 and it’s been a great experience so far. Go has greatly increased the productivity of our development team. Not only has it improved the speed at which we develop, it’s also 30x faster for many components of Stream. Initially we struggled a bit with package management for Go. However, using Dep together with the VG package contributed to creating a great workflow.

      Go as a language is heavily focused on performance. The built-in PPROF tool is amazing for finding performance issues. Uber’s Go-Torch library is great for visualizing data from PPROF and will be bundled in PPROF in Go 1.10.

      The performance of Go greatly influenced our architecture in a positive way. With Python we often found ourselves delegating logic to the database layer purely for performance reasons. The high performance of Go gave us more flexibility in terms of architecture. This led to a huge simplification of our infrastructure and a dramatic improvement of latency. For instance, we saw a 10 to 1 reduction in web-server count thanks to the lower memory and CPU usage for the same number of requests.

      #DataStores #Databases

      See more
      Thierry Schellenbach
      Shared insights
      on
      RedisRedisCassandraCassandraRocksDBRocksDB
      at

      1.0 of Stream leveraged Cassandra for storing the feed. Cassandra is a common choice for building feeds. Instagram, for instance started, out with Redis but eventually switched to Cassandra to handle their rapid usage growth. Cassandra can handle write heavy workloads very efficiently.

      Cassandra is a great tool that allows you to scale write capacity simply by adding more nodes, though it is also very complex. This complexity made it hard to diagnose performance fluctuations. Even though we had years of experience with running Cassandra, it still felt like a bit of a black box. When building Stream 2.0 we decided to go for a different approach and build Keevo. Keevo is our in-house key-value store built upon RocksDB, gRPC and Raft.

      RocksDB is a highly performant embeddable database library developed and maintained by Facebook’s data engineering team. RocksDB started as a fork of Google’s LevelDB that introduced several performance improvements for SSD. Nowadays RocksDB is a project on its own and is under active development. It is written in C++ and it’s fast. Have a look at how this benchmark handles 7 million QPS. In terms of technology it’s much more simple than Cassandra.

      This translates into reduced maintenance overhead, improved performance and, most importantly, more consistent performance. It’s interesting to note that LinkedIn also uses RocksDB for their feed.

      #InMemoryDatabases #DataStores #Databases

      See more
      Vitess logo

      Vitess

      66
      165
      0
      A database clustering system for horizontal scaling of MySQL
      66
      165
      + 1
      0
      PROS OF VITESS
        Be the first to leave a pro
        CONS OF VITESS
          Be the first to leave a con

          related Vitess posts

          Shared insights
          on
          MySQLMySQLVitessVitess
          at

          They're critical to the business data and operated by an ecosystem of tools. But once the tools have been used, it was important to verify that the data remains as expected at all times. Even with the best efforts to prevent errors, inconsistencies are bound to creep at any stage. In order to test the code in a comprehensive manner, Slack developed a structure known as a consistency check framework.

          This is a responsive and personalized framework that can meaningfully analyze and report on your data with a number of proactive and reactive benefits. This framework is important because it can help with repair and recovery from an outage or bug, it can help ensure effective data migration through scripts that test the code post-migration, and find bugs throughout the database. This framework helped prevent duplication and identifies the canonical code in each case, running as reusable code.

          The framework was created by creating generic versions of the scanning and reporting code and an interface for the checking code. The checks could be run from the command line and either a single team could be scanned or the whole system. The process was improved over time to further customize the checks and make them more specific. In order to make this framework accessible to everyone, a GUI was added and connected to the internal administrative system. The framework was also modified to include code that can fix certain problems, while others are left for manual intervention. For Slack, such a tool proved extremely beneficial in ensuring data integrity both internally and externally.

          See more
          MongoDB logo

          MongoDB

          93.1K
          80.3K
          4.1K
          The database for giant ideas
          93.1K
          80.3K
          + 1
          4.1K
          PROS OF MONGODB
          • 827
            Document-oriented storage
          • 593
            No sql
          • 553
            Ease of use
          • 464
            Fast
          • 410
            High performance
          • 255
            Free
          • 218
            Open source
          • 180
            Flexible
          • 145
            Replication & high availability
          • 112
            Easy to maintain
          • 42
            Querying
          • 39
            Easy scalability
          • 38
            Auto-sharding
          • 37
            High availability
          • 31
            Map/reduce
          • 27
            Document database
          • 25
            Easy setup
          • 25
            Full index support
          • 16
            Reliable
          • 15
            Fast in-place updates
          • 14
            Agile programming, flexible, fast
          • 12
            No database migrations
          • 8
            Easy integration with Node.Js
          • 8
            Enterprise
          • 6
            Enterprise Support
          • 5
            Great NoSQL DB
          • 4
            Support for many languages through different drivers
          • 3
            Schemaless
          • 3
            Aggregation Framework
          • 3
            Drivers support is good
          • 2
            Fast
          • 2
            Managed service
          • 2
            Easy to Scale
          • 2
            Awesome
          • 2
            Consistent
          • 1
            Good GUI
          • 1
            Acid Compliant
          CONS OF MONGODB
          • 6
            Very slowly for connected models that require joins
          • 3
            Not acid compliant
          • 2
            Proprietary query language

          related MongoDB posts

          Shared insights
          on
          Node.jsNode.jsGraphQLGraphQLMongoDBMongoDB

          I just finished the very first version of my new hobby project: #MovieGeeks. It is a minimalist online movie catalog for you to save the movies you want to see and for rating the movies you already saw. This is just the beginning as I am planning to add more features on the lines of sharing and discovery

          For the #BackEnd I decided to use Node.js , GraphQL and MongoDB:

          1. Node.js has a huge community so it will always be a safe choice in terms of libraries and finding solutions to problems you may have

          2. GraphQL because I needed to improve my skills with it and because I was never comfortable with the usual REST approach. I believe GraphQL is a better option as it feels more natural to write apis, it improves the development velocity, by definition it fixes the over-fetching and under-fetching problem that is so common on REST apis, and on top of that, the community is getting bigger and bigger.

          3. MongoDB was my choice for the database as I already have a lot of experience working on it and because, despite of some bad reputation it has acquired in the last months, I still believe it is a powerful database for at least a very long list of use cases such as the one I needed for my website

          See more
          Vaibhav Taunk
          Team Lead at Technovert · | 31 upvotes · 4.1M views

          I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.

          See more
          Clickhouse logo

          Clickhouse

          402
          527
          78
          A column-oriented database management system
          402
          527
          + 1
          78
          PROS OF CLICKHOUSE
          • 19
            Fast, very very fast
          • 11
            Good compression ratio
          • 6
            Horizontally scalable
          • 5
            Great CLI
          • 5
            Utilizes all CPU resources
          • 5
            RESTful
          • 4
            Buggy
          • 4
            Open-source
          • 4
            Great number of SQL functions
          • 3
            Server crashes its normal :(
          • 3
            Has no transactions
          • 2
            Flexible connection options
          • 2
            Highly available
          • 2
            ODBC
          • 2
            Flexible compression options
          • 1
            In IDEA data import via HTTP interface not working
          CONS OF CLICKHOUSE
          • 5
            Slow insert operations

          related Clickhouse posts

          PostgreSQL logo

          PostgreSQL

          97.6K
          81.7K
          3.5K
          A powerful, open source object-relational database system
          97.6K
          81.7K
          + 1
          3.5K
          PROS OF POSTGRESQL
          • 763
            Relational database
          • 510
            High availability
          • 439
            Enterprise class database
          • 383
            Sql
          • 304
            Sql + nosql
          • 173
            Great community
          • 147
            Easy to setup
          • 131
            Heroku
          • 130
            Secure by default
          • 113
            Postgis
          • 50
            Supports Key-Value
          • 48
            Great JSON support
          • 34
            Cross platform
          • 33
            Extensible
          • 28
            Replication
          • 26
            Triggers
          • 23
            Multiversion concurrency control
          • 23
            Rollback
          • 21
            Open source
          • 18
            Heroku Add-on
          • 17
            Stable, Simple and Good Performance
          • 15
            Powerful
          • 13
            Lets be serious, what other SQL DB would you go for?
          • 11
            Good documentation
          • 9
            Scalable
          • 8
            Free
          • 8
            Intelligent optimizer
          • 8
            Reliable
          • 7
            Modern
          • 7
            Transactional DDL
          • 6
            One stop solution for all things sql no matter the os
          • 5
            Relational database with MVCC
          • 5
            Faster Development
          • 4
            Full-Text Search
          • 4
            Developer friendly
          • 3
            Free version
          • 3
            Excellent source code
          • 3
            Relational datanbase
          • 3
            search
          • 3
            Great DB for Transactional system or Application
          • 3
            Open-source
          • 2
            Text
          • 2
            Full-text
          • 1
            Multiple procedural languages supported
          • 1
            Composability
          • 1
            Can handle up to petabytes worth of size
          • 0
            Native
          CONS OF POSTGRESQL
          • 10
            Table/index bloatings

          related PostgreSQL posts

          Simon Reymann
          Senior Fullstack Developer at QUANTUSflow Software GmbH · | 30 upvotes · 10.5M views

          Our whole DevOps stack consists of the following tools:

          • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
          • Respectively Git as revision control system
          • SourceTree as Git GUI
          • Visual Studio Code as IDE
          • CircleCI for continuous integration (automatize development process)
          • Prettier / TSLint / ESLint as code linter
          • SonarQube as quality gate
          • Docker as container management (incl. Docker Compose for multi-container application management)
          • VirtualBox for operating system simulation tests
          • Kubernetes as cluster management for docker containers
          • Heroku for deploying in test environments
          • nginx as web server (preferably used as facade server in production environment)
          • SSLMate (using OpenSSL) for certificate management
          • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
          • PostgreSQL as preferred database system
          • Redis as preferred in-memory database/store (great for caching)

          The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

          • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
          • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
          • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
          • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
          • Scalability: All-in-one framework for distributed systems.
          • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
          See more
          Jeyabalaji Subramanian

          Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our production MongoDB to a PostgreSQL database for data warehousing and business intelligence.

          We set ourselves the following criteria for the optimal tool that would do this job: - The data replication must be near real-time, yet it should NOT impact the production database - The data replication must be horizontally scalable (based on the load), asynchronous & crash-resilient

          Based on the above criteria, we selected the following tools to perform the end to end data replication:

          We chose MongoDB Stitch for picking up the changes in the source database. It is the serverless platform from MongoDB. One of the services offered by MongoDB Stitch is Stitch Triggers. Using stitch triggers, you can execute a serverless function (in Node.js) in real time in response to changes in the database. When there are a lot of database changes, Stitch automatically "feeds forward" these changes through an asynchronous queue.

          We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service. Interestingly enough, MongoDB stitch offers integration with AWS services.

          In the Node.js function, we wrote minimal functionality to communicate the database changes (insert / update / delete / replace) to Amazon SQS.

          Next we wrote a minimal micro-service in Python to listen to the message events on SQS, pickup the data payload & mirror the DB changes on to the target Data warehouse. We implemented source data to target data translation by modelling target table structures through SQLAlchemy . We deployed this micro-service as AWS Lambda with Zappa. With Zappa, deploying your services as event-driven & horizontally scalable Lambda service is dumb-easy.

          In the end, we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!

          See more
          Apache Aurora logo

          Apache Aurora

          69
          96
          0
          An Apcahe Mesos framework for scheduling jobs, originally developed by Twitter
          69
          96
          + 1
          0
          PROS OF APACHE AURORA
            Be the first to leave a pro
            CONS OF APACHE AURORA
              Be the first to leave a con

              related Apache Aurora posts

              Docker containers on Mesos run their microservices with consistent configurations at scale, along with Aurora for long-running services and cron jobs.

              See more