HBase聽vs聽MongoDB聽vs聽MySQL

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

HBase

324
369
+ 1
14
MongoDB

55.5K
45K
+ 1
4K
MySQL

73.9K
58K
+ 1
3.7K
Advice on HBase, MongoDB, and MySQL
Ilias Mentzelos
Software Engineer at Plum Fintech | 6 upvotes 路 3K views
Needs advice
on
MongoDB
and
Couchbase

Hey, we want to build a referral campaign mechanism that will probably contain millions of records within the next few years. We want fast read access based on IDs or some indexes, and isolation is crucial as some listeners will try to update the same document at the same time. What's your suggestion between Couchbase and MongoDB? Thanks!

See more
Replies (1)
Jon Clarke
Enterprise Account Exec at ScyllaDB | 3 upvotes 路 1.5K views
Recommends
Scylla
Couchbase

I am biased (work for Scylla) but it sounds like a KV/wide column would be better in this use case. Document/schema free/lite DBs data stores are easier to get up and running on but are not as scalable (generally) as NoSQL flavors that require a more rigid data model like ScyllaDB. If your data volumes are going to be 10s of TB and transactions per sec 10s of 1000s (or more), look at Scylla. We have something called lightweight transactions (LWT) that can get you consistency.

See more
Soufiane L
Needs advice
on
PostgreSQL
MySQL
and
MongoDB

I'm planning to build a freelance marketplace website, using tools like Next.js, Firebase Authentication, Node.js, but I need to know which type of database is suitable with performance and powerful features. I'm trying to figure out what the best stack is for this project. If anyone has advice please, I鈥檇 love to hear more details. Thanks.

See more
Replies (4)
malekmfs
at Meam Software Engineering Group | 5 upvotes 路 3.1K views
Recommends
PostgreSQL

Postgres and MySQL are very similar, but Mongo has differences in terms of storage type and the CAP theorem. For your requirement, I prefer Postgres (or MySQL) over MongoDB. Mongo gives you no schema which is not always good. on the other hand, it is more common in NodeJS community, so you may find more articles about Node-Mongo stuff. I suggest to stay with RDBMS if possible.

See more
Nurullah SERT
Recommends
PostgreSQL
MySQL

This is a little about experience. Postgresql is fine. You can use either the related table structure or the json table structure.

See more
Ruslan Rayanov
Recommends
MySQL

We have a ready-made engine for the online exchange and marketplace. To customize it, you only need to know sql. Connecting any database is not a problem. https://falconspace.site/list/solutions

See more
Ruslan Rayanov
Owner at Falcon Space | 1 upvotes 路 6.7K views
Recommends

As far as I understand, the freelance marketplace website should be something like an auction site for finding performers. I can offer you a ready-made engine for the exchange of orders or vacancies https://falconspace.site/list/solutions/auction---1 This engine is based on a very flexible platform, on which you can create almost any web application using ms sql. More information about the platform can be found here https://falconspace.site/docs/vvedenie-v-falcon-space--c-chego-nachat

See more
View all (4)
Dennis Kraaijeveld
Needs advice
on
PostgreSQL
MongoDB
and
ExpressJS

For learning purposes, I am trying to design a dashboard that displays the total revenue from all connected webshops/marketplaces, displaying incoming orders, total orders, etc.

So I will need to get the data (using Node backend) from the Shopify and marketplace APIs, storing this in the database, and get the data from the back end.

My question is:

What kind of database should I use? Is MongoDB fine for storing this kind of data? Or should I go with a SQL database?

See more
Replies (3)
Arash JalaliGhalibaf
Software Engineer at Cafe Bazaar | 9 upvotes 路 17.9K views
Recommends
PostgreSQL

Postgres is a solid database with a promising background. In the relational side of database design, I see Postgres as an absolute; Now the arguments and conflicts come in when talking about NoSQL data types. The truth is jsonb in Postgres is efficient and gives a good performance and storage. In a comparison with MongoDB with the same resources (such as RAM and CPU) with better tools and community, I think you should go for Postgres and use jsonb for some of the data. All in all, don't use a NoSQL database just cause you have the data type matching this tech, have both SQL and NoSQL at the same time.

See more
Recommends
MongoDB

I how found MongoDB easier to work with. Postgres and SQL in general, in my experience, is harder to work with. While Postgres does provide data consistency, MongoDB provides flexibility. I've found the MongoDB ecosystem to be really great with a good community. I've worked with MongoDB in production and it's been great. I really like the aggregation system and using query operators such as $in, $pull, $push.

While my opinion may be unpopular, I have found MongoDB really great for relational data, using aggregations from a code perspective. In general, data types are also more flexible with MongoDB.

See more
Luciano Bustos
Senior Software Developer | 1 upvotes 路 8.8K views
Recommends
PostgreSQL

I will use PostgreSQL because you have more powerfull feature for data agregation and views (the raw data from shopify and others could be stored as is) and then use views to produce diff. kind of reports unless you wanna create those aggregations/views in nodejs code. HTH

See more
View all (3)
Decisions about HBase, MongoDB, and MySQL
Sergey Rodovinsky

We were looking at several alternative databases that would support following architectural requirements: - very quick prototyping for an unknown domain - ability to support large amounts of data - native ability to replicate and fail over - full stack approach for Node.js development After careful consideration MongoDB came on top, and 3 years later we are still very happy with that decision. Currently we keep almost 2TB of data in our cluster, and start thinking about sharding.

See more
Gabriel Pa

After using couchbase for over 4 years, we migrated to MongoDB and that was the best decision ever! I'm very disappointed with Couchbase's technical performance. Even though we received enterprise support and were a listed Couchbase Partner, the experience was horrible. With every contact, the sales team was trying to get me on a $7k+ license for access to features all other open source NoSQL databases get for free.

Here's why you should not use Couchbase

Full-text search Queries The full-text search often returns a different number of results if you run the same query multiple types

N1QL queries Configuring the indexes correctly is next to impossible. It's poorly documented and nobody seems to know what to do, even the Couchbase support engineers have no clue what they are doing.

Community support I posted several problems on the forum and I never once received a useful answer

Enterprise support It's very expensive. $7k+. The team constantly tried to get me to buy even though the community edition wasn't working great

Autonomous Operator It's actually just a poorly configured Kubernetes role that no matter what I did, I couldn't get it to work. The support team was useless. Same lack of documentation. If you do get it to work, you need 6 servers at least to meet their minimum requirements.

Couchbase cloud Typical for Couchbase, the user experience is awful and I could never get it to work.

Minimum requirements The minimum requirements in production are 6 servers. On AWS the calculated monthly cost would be ~$600. We achieved better performance using a $16 MongoDB instance on the Mongo Atlas Cloud

writing queries is a nightmare While N1QL is similar to SQL and it's easier to write because of the familiarity, that isn't entirely true. The "smart index" that Couchbase advertises is not smart at all. Creating an index with 5 fields, and only using 4 of them won't result in Couchbase using the same index, so you have to create a new one.

Couchbase UI The UI that comes with every database deployment is full of bugs, barely functional and the developer experience is poor. When I asked Couchbase about it, they basically said they don't care because real developers use SQL directly from code

Consumes too much RAM Couchbase is shipped with a smaller Memcached instance to handle the in-memory cache. Memcached ends up using 8 GB of RAM for 5000 documents! I'm not kidding! We had less than 5000 docs on a Couchbase instance and less than 20 indexes and RAM consumption was always over 8 GB

Memory allocations are useless I asked the Couchbase team a question: If a bucket has 1 GB allocated, what happens when I have more than 1GB stored? Does it overflow? Does it cache somewhere? Do I get an error? I always received the same answer: If you buy the Couchbase enterprise then we can guide you.

See more
Omran Jamal
CTO & Co-founder at Bonton Connect | 4 upvotes 路 146.5K views

We actually use both Mongo and SQL databases in production. Mongo excels in both speed and developer friendliness when it comes to geospatial data and queries on the geospatial data, but we also like ACID compliance hence most of our other data (except on-site logs) are stored in a SQL Database (MariaDB for now)

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of HBase
Pros of MongoDB
Pros of MySQL
  • 8
    Performance
  • 5
    OLTP
  • 1
    Fast Point Queries
  • 822
    Document-oriented storage
  • 588
    No sql
  • 544
    Ease of use
  • 462
    Fast
  • 404
    High performance
  • 252
    Free
  • 212
    Open source
  • 177
    Flexible
  • 139
    Replication & high availability
  • 107
    Easy to maintain
  • 39
    Querying
  • 35
    Easy scalability
  • 34
    Auto-sharding
  • 33
    High availability
  • 29
    Map/reduce
  • 26
    Document database
  • 24
    Easy setup
  • 24
    Full index support
  • 15
    Reliable
  • 14
    Fast in-place updates
  • 13
    Agile programming, flexible, fast
  • 11
    No database migrations
  • 7
    Enterprise
  • 7
    Easy integration with Node.Js
  • 5
    Enterprise Support
  • 4
    Great NoSQL DB
  • 3
    Aggregation Framework
  • 3
    Drivers support is good
  • 3
    Support for many languages through different drivers
  • 2
    Schemaless
  • 2
    Managed service
  • 2
    Easy to Scale
  • 2
    Fast
  • 2
    Awesome
  • 1
    Consistent
  • 790
    Sql
  • 673
    Free
  • 557
    Easy
  • 527
    Widely used
  • 485
    Open source
  • 180
    High availability
  • 158
    Cross-platform support
  • 103
    Great community
  • 77
    Secure
  • 75
    Full-text indexing and searching
  • 25
    Fast, open, available
  • 14
    SSL support
  • 13
    Reliable
  • 13
    Robust
  • 8
    Enterprise Version
  • 7
    Easy to set up on all platforms
  • 2
    NoSQL access to JSON data type
  • 1
    Replica Support
  • 1
    Easy, light, scalable
  • 1
    Relational database
  • 1
    Sequel Pro (best SQL GUI)

Sign up to add or upvote prosMake informed product decisions

Cons of HBase
Cons of MongoDB
Cons of MySQL
    Be the first to leave a con
    • 5
      Very slowly for connected models that require joins
    • 3
      Not acid compliant
    • 1
      Proprietary query language
    • 14
      Owned by a company with their own agenda
    • 1
      Can't roll back schema changes

    Sign up to add or upvote consMake informed product decisions

    What is HBase?

    Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, HBase provides Bigtable-like capabilities on top of Apache Hadoop.

    What is 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.

    What is 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.

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

    What companies use HBase?
    What companies use MongoDB?
    What companies use MySQL?

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

    What tools integrate with HBase?
    What tools integrate with MongoDB?
    What tools integrate with MySQL?

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

    Blog Posts

    Dec 8 2020 at 5:50PM

    DigitalOcean

    +11
    2
    1673
    Jun 24 2020 at 4:42PM

    Pinterest

    +4
    4
    994
    +6
    2
    1420
    What are some alternatives to HBase, MongoDB, and MySQL?
    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.
    Hadoop
    The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage.
    Druid
    Druid is a distributed, column-oriented, real-time analytics data store that is commonly used to power exploratory dashboards in multi-tenant environments. Druid excels as a data warehousing solution for fast aggregate queries on petabyte sized data sets. Druid supports a variety of flexible filters, exact calculations, approximate algorithms, and other useful calculations.
    Couchbase
    Developed as an alternative to traditionally inflexible SQL databases, the Couchbase NoSQL database is built on an open source foundation and architected to help developers solve real-world problems and meet high scalability demands.
    Apache Hive
    Hive facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage.
    See all alternatives
    How developers use HBase, MongoDB, and MySQL
    Tarun Singh uses
    MongoDB

    Used MongoDB as primary database. It holds trip data of NYC taxis for the year 2013. It is a huge dataset and it's primary feature is geo coordinates with pickup and drop off locations. Also used MongoDB's map reduce to process this large dataset for aggregation. This aggregated result was then used to show visualizations.

    Trello uses
    MongoDB

    MongoDB fills our more traditional database needs. We knew we wanted Trello to be blisteringly fast. One of the coolest and most performance-obsessed teams we know is our next-door neighbor and sister company StackExchange. Talking to their dev lead David at lunch one day, I learned that even though they use SQL Server for data storage, they actually primarily store a lot of their data in a denormalized format for performance, and normalize only when they need to.

    Rajeshkumar T uses
    MySQL
    • We are used MySQL database to build the Online Food Ordering System

      • Its best support normalization and all joins ( Restaurant details & Ordering, customer management, food menu, order transaction & food delivery).
      • Best for performance and structured the data.
      • Its help to stored the instant updates received from food delivery app ( update the real-time driver GPS location).
    Srinivas Adireddi uses
    MySQL

    1.It's very popular. Heared about it in Database class 2. The most comprehensive set of advanced features, management tools and technical support to achieve the highest levels of MySQL scalability, security, reliability, and uptime. 3. MySQL is an open-source relational database management system. Its name is a combination of "My", the name of co-founder Michael Widenius's daughter, and "SQL", the abbreviation for Structured Query Language.

    ShadowICT uses
    MySQL

    We use MySQL and variants thereof to store the data for our projects such as the community. MySQL being a well established product means that support is available whenever it is required along with an extensive list of support articles all over the web for diagnosing issues. Variants are also used where needed when, for example, better performance is needed.

    Pinterest uses
    HBase

    The final output is inserted into HBase to serve the experiment dashboard. We also load the output data to Redshift for ad-hoc analysis. For real-time experiment data processing, we use Storm to tail Kafka and process data in real-time and insert metrics into MySQL, so we could identify group allocation problems and send out real-time alerts and metrics.

    Foursquare uses
    MongoDB

    Nearly all of our backend storage is on MongoDB. This has also worked out pretty well. It's enabled us to scale up faster/easier than if we had rolled our own solution on top of PostgreSQL (which we were using previously). There have been a few roadbumps along the way, but the team at 10gen has been a big help with thing.

    shridhardalavi uses
    MySQL

    MySQL is a freely available open source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL). SQL is the most popular language for adding, accessing and managing content in a database. It is most noted for its quick processing, proven reliability, ease and flexibility of use.

    John Galbraith uses
    MySQL

    I am not using this DB for blog posts or data stored on the site. I am using to track IP addresses and fully qualified domain names of attacker machines that either posted spam on my website, pig flooded me, or had more that a certain number of failed SSH attempts.

    AngeloR uses
    MongoDB

    We are testing out MongoDB at the moment. Currently we are only using a small EC2 setup for a delayed job queue backed by agenda. If it works out well we might look to see where it could become a primary document storage engine for us.

    Rohith Nandakumar uses
    MongoDB

    Because you don't know what data you will be querying for. Perfectly suited for rapid prototyping. Altering tables in traditional, relational DBMS is painfully expensive and slow.

    Performance is not great though. Ah who cares!

    Axibase uses
    HBase
    • Raw storage engine
    • Replication
    • Fault-tolerance
    Mehdi TAZI uses
    HBase

    Range scan and HDFS Buffering system

    anerudhbalaji uses
    HBase

    Primary datastore