Index Principle Comparison

MongoDB B-Tree

  • Each node stores both actual data and index information
  • For queries, once a matching key is found in the node, data can be retrieved directly
  • Very efficient for exact queries (such as find({_id:123}))
  • Relatively lower efficiency for range queries

MySQL B+Tree

  • All data is stored in leaf nodes
  • Leaf nodes are connected via bidirectional pointers forming an ordered linked list
  • Very efficient for range queries
  • Non-leaf nodes only store index keys, not data

Key Differences

Data Storage Method

  • MySQL: Uses row-based storage, data stored in fixed table structure
  • MongoDB: Uses document storage, data stored in BSON document format

Data Association Method

  • MySQL: Establishes relationships between tables through foreign keys, supports JOIN operations
  • MongoDB: Implements data association through references or embedded documents

B+Tree vs B-Tree Range Query Performance Comparison

B+Tree Advantages:

  • Pointer connections between leaf nodes can efficiently support range queries
  • Only need to locate the starting key node, then traverse sequentially along pointers

B-Tree Disadvantages:

  • No additional link pointers between nodes
  • Range queries require repeated tree traversal operations

External Storage Structure Optimization

B+Tree Advantages:

  • Non-leaf nodes only store index keys, single node can hold more index entries
  • Disk read-ahead can be better utilized

Tree Depth and I/O Efficiency:

  • B-tree is suitable for random point queries, worst case only needs 3-4 disk I/O operations
  • B+tree has excellent sequential access performance, suitable for full table scans and range queries