OceanBase for production teams

Ship HTAP workloads without rewriting your stack.

Deep guides, runbooks, and tooling for architects migrating to OceanBase, from Paxos internals to cutover checklists.

explain.sql
EXPLAIN ANALYZE SELECT o.order_id, c.name, SUM(l.amount)
FROM orders o
JOIN customers c ON c.id = o.customer_id
JOIN order_lines l ON l.order_id = o.order_id
WHERE o.created_at >= '2026-01-01'
GROUP BY o.order_id, c.name
ORDER BY SUM(l.amount) DESC
LIMIT 20;

+----+-------------+-------+------------+------+
| id | operation   | name  | est. rows  | time |
+----+-------------+-------+------------+------+
|  0 | TABLE SCAN  | lines |  2,400,000 |  45ms|
|  1 | HASH JOIN   | orders|     48,200 |  12ms|
|  2 | HASH GROUP  |       |         20 |   3ms|
+----+-------------+-------+------------+------+
benchmark.sh
sysbench oltp_read_write \
  --mysql-host=ob-proxy.internal \
  --tables=32 --table-size=5000000 \
  --threads=128 --time=300 run

transactions:  1,842,401 (6142.67 per sec.)
queries:       36,848,020 (122853.40 per sec.)
avg latency:   20.84ms
p95 latency:   38.12ms
p99 latency:   62.47ms
obcluster.yaml
--- obcluster.yaml (before)
+++ obcluster.yaml (after)
 zones:
   - name: zone_a
-    replica: 2
+    replica: 3
   - name: zone_b
     replica: 3
 memory_limit: 64G
+enable_log_archive: true
+log_archive_dest: s3://ob-backups/prod

Content pillars

Ten focused tracks from architecture internals to backup and disaster recovery.

All guides

Latest guides