数据库面试题库总览:922 题

面试鸭全站 373 个题库里,数据库相关的 19 个共 970 道,按题目 ID 去重后合并成 922 道,按技术栈分成 7 个板块、43 个考点。其中 316 道附了答案骨架——是答题提纲,不是官方答案全文。

想按板块切换、按难度筛选、按关键词搜,用 交互版题库总览;想把 118 道 MySQL 题按周排进计划,看 8 周刷题排期。

目录

  • MySQL(118 题)— 后端视角 82 道 + 运维/备份/高可用视角 36 道,合并去重
    • 架构与存储引擎(15)
    • B+ 树与索引结构(4)
    • 日志与两阶段提交(4)
    • 索引设计与失效(13)
    • 事务、MVCC 与锁(13)
    • SQL 调优与执行计划(11)
    • 高可用与分库分表(18)
    • 备份与恢复(9)
    • 监控与诊断(5)
    • 表设计与数据类型(15)
    • SQL 语法与函数(6)
    • 数据同步与入库(5)
  • Redis(53 题)— 缓存、分布式锁、集群与故障
    • 基础与数据结构(22)
    • 内存管理与淘汰(4)
    • 持久化(2)
    • 高可用与集群(8)
    • 缓存三大问题(5)
    • 分布式锁(6)
    • 事务、Lua 与 Pipeline(6)
  • Oracle(40 题)— 金融与传统行业甲方常问,与 MySQL 对照记差异
    • 体系结构与存储(10)
    • 备份与恢复(6)
    • 高可用与容灾(8)
    • 性能诊断与调优(16)
  • PostgreSQL(32 题)— 云原生与新建项目主流
    • 体系结构与存储(7)
    • 备份与恢复(7)
    • 高可用与复制(5)
    • 性能诊断与调优(13)
  • SQL(109 题)— 5 个题库去重后 109 道,电商/网站场景题与基础题大量重合
    • 基础查询(32)
    • 进阶查询(47)
    • SQL 综合(30)
  • 大数据与检索(497 题)— 数仓 / 检索 / OLAP,仅列清单
    • ClickHouse(49)
    • Elasticsearch(177)
    • HBase(72)
    • Hive(63)
    • 数据仓库(51)
    • Spark SQL(57)
    • 向量数据库(28)
  • MongoDB(73 题)— 热度偏低,按需取舍
    • 基础概念与 CRUD(9)
    • 索引与查询优化(10)
    • 聚合与数据处理(9)
    • 复制集、分片与高可用(22)
    • 事务与一致性(10)
    • 运维、备份与存储引擎(13)

MySQL

后端视角 82 道 + 运维/备份/高可用视角 36 道,合并去重 · 共 118 题

架构与存储引擎(15)

  • #589 详细描述一条 SQL 语句在 MySQL 中的执行过程。
    进阶 · 5.5w 浏览 · 原题

    连接器(校验权限)→ 解析器(词法/语法)→ 预处理器 → 优化器(选索引、算成本、出执行计划)→ 执行器(调引擎接口)→ 存储引擎。8.0 已移除查询缓存。

  • #590 MySQL 的存储引擎有哪些?它们之间有什么区别?
    进阶 · 4.5w 浏览 · 原题

    InnoDB:事务/行锁/MVCC/外键/崩溃恢复/聚簇索引;MyISAM:表锁、无事务、非聚簇、count 快;Memory:内存哈希;Archive:高压缩只读。5.5 起默认 InnoDB。

  • #625 从 MySQL 获取数据,是从磁盘读取的吗?(buffer pool)
    进阶 · 1.2w 浏览 · 原题

    不是。先查 Buffer Pool(innodb_buffer_pool_size,建议物理内存 60%~70%),命中直接返回;未命中才把 16KB 数据页从磁盘读入内存。所以是"内存为主、磁盘兜底"。

  • #626 MySQL 的 Change Buffer 是什么?它有什么作用?
    进阶 · 3.4w 浏览 · 原题

    针对非唯一二级索引的写操作,先记录在 change buffer 中,等后续读到该页时再 merge,把随机写变为顺序写。唯一索引不能用(插入时必须校验唯一性,必须读页)。

  • #627 MySQL 的 Doublewrite Buffer 是什么?它有什么作用?
    基础 · 9.2k 浏览 · 原题

    写数据页前先顺序写一份到 doublewrite buffer,再写到数据文件。防止页断裂(partial page write,16KB 页只写了部分)导致崩溃后页损坏。

  • #628 MySQL 中的 Log Buffer 是什么?它有什么作用?
    基础 · 1.1w 浏览 · 原题

    redo log 写入前先放 log buffer,由 innodb_flush_log_at_trx_commit 控制刷盘:1 每次提交都刷(最安全)、0 每秒刷、2 写 OS cache 每秒刷。

  • #1477 相比于 Oracle,MySQL 的优势有哪些?
    进阶 · 9.7k 浏览 · 原题

    MySQL:开源免费、轻量易部署、主从复制简单成熟、生态与云厂商支持好,适合互联网高并发读写;Oracle:复杂查询/存储过程/分析函数更强,RAC 高可用成熟,但昂贵且重。

  • #2626 MySQL 的体系结构是怎样的?其主要组件的功能是什么?
    进阶 · 1.4k 浏览 · 原题

    连接层(连接池、线程管理、认证)→ Server 层(解析器、优化器、执行器,8.0 已移除查询缓存)→ 存储引擎层(可插拔,默认 InnoDB);Server 层通过 handler API 调引擎。

  • #2629 MySQL 中 InnoDB 存储引擎与 MyISAM 存储引擎的区别是什么?
    进阶 · 1.5w 浏览 · 原题

    InnoDB:支持事务/行锁/MVCC/外键/崩溃恢复/聚簇索引,5.5+ 默认;MyISAM:表锁、不支持事务、非聚簇、索引与数据分离、count(*) 快、崩溃后易损坏。

  • #2637 MySQL 的分区表(Partition Table)是什么?它的结构是怎样的?有哪些优势?
    进阶 · 385 浏览 · 原题

    按 RANGE / LIST / HASH / KEY 把一张表切成多个物理文件,逻辑上仍是一张表。优势:分区裁剪、分区级维护(秒删历史分区)、单分区备份恢复。

  • #2640 MySQL 的查询优化器如何选择执行计划?
    进阶 · 1.2w 浏览 · 原题

    基于成本模型(CBO):依据统计信息(innodb_stats_persistent 采样)估算各索引的 IO + CPU 代价,选择代价最低的方案;可能出现选错索引,可用 FORCE INDEX 或 ANALYZE TABLE 干预。

  • #2643 MySQL 中的查询缓存是什么?如何配置查询缓存?
    进阶 · 413 浏览 · 原题

    8.0 已彻底移除。历史上缓存"SQL 文本 → 结果集",表上任何写操作都会让该表所有缓存失效,命中率低、维护开销大,所以被废弃。

  • #2654 MySQL 中的 Buffer Pool 和 Query Cache 是如何影响数据库性能的?
    进阶 · 375 浏览 · 原题

    Buffer Pool 缓存数据页与索引页,是性能核心(命中率应 >99%);Query Cache 缓存结果集,写即失效。前者是页级缓存、后者是结果级缓存,8.0 只保留前者。

  • #2665 如何在 MySQL 中调优 InnoDB Buffer Pool?
    进阶 · 496 浏览 · 原题

    innodb_buffer_pool_size 设为物理内存 60%~70%(8.0 支持在线调整);innodb_buffer_pool_instances 多实例减少争用;监控命中率与脏页比例(innodb_buffer_pool_pages_dirty)。

  • #11175 SQL 中 select、from、join、where、group by、having、order by、limit 的执行顺序是什么?
    进阶 · 1.0w 浏览 · 原题

    FROM → JOIN/ON → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT。理解顺序才能解释"为什么 where 不能用 select 的别名"“为什么 having 能过滤聚合”。

B+ 树与索引结构(4)

  • #600 请详细描述 MySQL 的 B+ 树中查询数据的全过程
    深入 · 3.3w 浏览 · 原题

    从根节点开始,非叶子节点二分查找定位子页指针 → 逐层向下 → 叶子页内二分查到记录 → 若是二级索引再按主键回表。

  • #601 为什么 MySQL 选择使用 B+ 树作为索引结构?
    进阶 · 3.0w 浏览 · 原题

    树矮(3 层可存约 2000 万行,IO 次数少)、非叶子只存键值故扇出大、叶子节点双向链表天然支持范围查询与排序、查询复杂度稳定为 O(log n)。

  • #9499 MySQL 三层 B+ 树能存多少数据?
    进阶 · 2.3w 浏览 · 原题

    每页 16KB;非叶子节点存"主键(8B)+页指针(6B)“约 14B,一页可放约 1170 个;叶子节点假设一行 1KB 则一页 16 行。三层 ≈ 1170 × 1170 × 16 ≈ 2000 万行。

  • #11623 为什么 MySQL 索引用的是 B+ 树而不是红黑树?
    进阶 · 7.1k 浏览 · 原题

    红黑树是二叉结构,千万级数据高度 20+ 层,每层都是一次随机 IO;B+ 树一个节点就是一页(16KB),扇出上千,3 层即可覆盖,IO 次数少几个数量级。

日志与两阶段提交(4)

  • #106 MySQL 中的日志类型有哪些?binlog、redo log 和 undo log 的作用和区别是什么?
    进阶 · 1.3w 浏览 · 原题

    redo log:InnoDB 物理日志,崩溃恢复保持久性,循环写;undo log:逻辑日志,回滚+MVCC;binlog:Server 层逻辑日志,主从复制与归档,追加写。

  • #1534 什么是 Write-Ahead Logging (WAL) 技术?它的优点是什么?MySQL 中是否用到了 WAL?
    进阶 · 1.0w 浏览 · 原题

    WAL(Write-Ahead Logging):先顺序写日志再刷数据页,把随机写变为顺序写,同时保证崩溃后可恢复。MySQL 的 redo log(innodb_flush_log_at_trx_commit)就是 WAL 的落地。

  • #9498 MySQL 事务的二阶段提交是什么?
    进阶 · 2.0w 浏览 · 原题

    redo log 写 prepare → 写 binlog → redo log 写 commit。崩溃恢复时:若 redo 已 prepare 且 binlog 完整则提交,否则回滚,保证 redo 与 binlog 逻辑一致,从而主从一致。

  • #10385 MySQL 插入一条 SQL 语句,redo log 记录的是什么?
    进阶 · 9.0k 浏览 · 原题

    记录的是对数据页的物理修改:表空间号 + 页号 + 页内偏移 + 修改内容,而不是 SQL 语句。所以 redo log 体积小、重放快。

索引设计与失效(13)

  • #591 MySQL 的索引类型有哪些?
    基础 · 4.9w 浏览 · 原题

    按结构:B+树、哈希(Memory/自适应哈希)、全文、R-Tree;按物理:聚簇索引、二级索引;按逻辑:主键、唯一、普通、组合、前缀、覆盖。

  • #592 MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?
    进阶 · 3.6w 浏览 · 原题

    聚簇索引叶子节点存整行数据,一张表只有一个(默认主键);二级索引叶子只存主键值,查其余列需回表。无主键时用唯一非空列或隐藏 row_id。

  • #593 MySQL 中的回表是什么?
    进阶 · 3.7w 浏览 · 原题

    二级索引拿到主键值后,再回聚簇索引取整行,即多一次(或多次随机)IO。消除手段:覆盖索引、索引下推。

  • #594 MySQL 索引的最左前缀匹配原则是什么?
    基础 · 5.7w 浏览 · 原题

    联合索引 (a,b,c) 必须从最左列开始且连续匹配;某列用范围查询后,其右侧列失效;order by / group by 同样遵循该原则。

  • #595 MySQL 的覆盖索引是什么?
    进阶 · 3.5w 浏览 · 原题

    查询涉及的列全部包含在索引中,无需回表。EXPLAIN 的 Extra 显示 Using index。

  • #596 MySQL 的索引下推是什么?
    进阶 · 3.3w 浏览 · 原题

    MySQL 5.6+ 的 Index Condition Pushdown:把 where 中能用索引列判断的条件下推到引擎层过滤,减少回表次数。Extra 显示 Using index condition。

  • #597 在 MySQL 中建索引时需要注意哪些事项?
    基础 · 2.5w 浏览 · 原题

    选区分度高的列;联合索引按"等值在前、范围在后"排列;控制数量(写放大);长字符串用前缀索引;主键用自增 bigint;避免在索引列上做函数/隐式转换。

  • #598 MySQL 中使用索引一定有效吗?如何排查索引效果?
    进阶 · 3.3w 浏览 · 原题

    不一定。函数运算、隐式类型转换、前置模糊 like %x、or 连接非索引列、范围查询后的列、区分度极低都会失效。排查用 EXPLAIN 看 type/key/rows/Extra。

  • #599 MySQL 中的索引数量是否越多越好?为什么?
    进阶 · 2.9w 浏览 · 原题

    不是。每个索引都随 DML 维护(写放大)、占磁盘与 buffer pool、增加优化器选择成本;建议单表控制在 5~6 个以内。

  • #1479 在什么情况下,不推荐为数据库建立索引?
    进阶 · 1.5w 浏览 · 原题

    区分度低的列(如性别、状态只有几种)、更新极其频繁的列、数据量很小的表、几乎不作为查询条件的列、超长文本(应用前缀索引或全文检索)。

  • #2672 如何在 MySQL 中优化索引以提高查询性能?
    进阶 · 737 浏览 · 原题

    按查询模式建联合索引(等值在前、范围在后)、用覆盖索引避免回表、长字符串用前缀索引、清理冗余索引(sys.schema_unused_indexes / redundant_indexes)。

  • #2689 MySQL 中的 Full-Text Search 索引如何优化全文检索?
    进阶 · 186 浏览 · 原题

    InnoDB 5.6+ 支持 FULLTEXT,中文需 ngram 分词器(ngram_token_size);适合站内文章检索,百万级以上或复杂检索仍建议上 ES。

  • #12132 MySQL 二级索引有 MVCC 快照吗?
    进阶 · 6.4k 浏览 · 原题

    没有独立的 MVCC 快照。二级索引页上没有 trx_id/roll_ptr,可见性判断必须回表到聚簇索引完成,这也是"二级索引不能完全避免回表"的根因之一。

事务、MVCC 与锁(13)

  • #602 MySQL 是如何实现事务的?
    深入 · 3.2w 浏览 · 原题

    redo log 保持久性(D);undo log 保原子性(A)并支撑 MVCC;锁 + MVCC 保隔离性(I);一致性(C)由前三者 + 约束 + 应用逻辑共同保证。

  • #603 MySQL 中长事务可能会导致哪些问题?
    进阶 · 2.3w 浏览 · 原题

    undo 版本链无限膨胀、回滚段/history list 撑大、锁与 MDL 长期占用阻塞 DDL、主从延迟、purge 线程滞后。排查:information_schema.innodb_trx。

  • #604 MySQL 中的 MVCC 是什么?
    深入 · 3.2w 浏览 · 原题

    隐藏列(trx_id、roll_ptr)+ undo 版本链 + ReadView(m_ids、min_trx_id、max_trx_id、creator_trx_id)。RC 每次快照读都生成 ReadView,RR 只在事务首次快照读时生成。

  • #605 如果 MySQL 中没有 MVCC,会有什么影响?
    深入 · 1.5w 浏览 · 原题

    读操作必须加锁,读写互斥,并发能力骤降;只能退化为串行化或读写锁,长查询会阻塞写入。

  • #606 MySQL 中的事务隔离级别有哪些?
    基础 · 2.8w 浏览 · 原题

    读未提交(RU)、读已提交(RC)、可重复读(RR)、串行化(Serializable)。分别解决脏读、不可重复读、幻读(RR 靠间隙锁/Next-Key Lock 在锁层面解决幻读)。

  • #607 MySQL 默认的事务隔离级别是什么?为什么选择这个级别?
    基础 · 2.4w 浏览 · 原题

    历史兼容:早期只有 statement 格式 binlog,RC 会导致主从数据不一致,故默认 RR。当下互联网大厂多改用 RC:减少间隙锁、降低死锁率、主从半一致场景更安全。

  • #608 数据库的脏读、不可重复读和幻读分别是什么?
    进阶 · 3.8w 浏览 · 原题

    脏读:读到别的事务未提交的数据;不可重复读:同一事务两次读同一行,值被别的事务改了;幻读:同一事务两次范围查询,行数变了(别的事务插入/删除)。

  • #609 MySQL 中有哪些锁类型?
    进阶 · 2.7w 浏览 · 原题

    按粒度:表锁、行锁、页锁;按模式:共享锁 S、排他锁 X、意向锁 IS/IX;InnoDB 行锁细分:记录锁、间隙锁、Next-Key Lock、插入意向锁;另有 MDL 元数据锁、AUTO-INC 锁。

  • #610 MySQL 的乐观锁和悲观锁是什么?
    进阶 · 2.5w 浏览 · 原题

    悲观锁:假设一定冲突,靠数据库锁,select … for update;乐观锁:假设很少冲突,用版本号/时间戳 + CAS 更新,冲突时重试。

  • #611 MySQL 中如果发生死锁应该如何解决?
    进阶 · 2.3w 浏览 · 原题

    成因:两个事务以不同顺序持有并等待对方所需锁。排查:show engine innodb status 的 LATEST DETECTED DEADLOCK、innodb_print_all_deadlocks。解决:统一加锁顺序、缩小事务、降低隔离级别、设置 innodb_lock_wait_timeout 并重试;InnoDB 会自动回滚代价小的事务。

  • #1535 你们生产环境的 MySQL 中使用了什么事务隔离级别?为什么?
    进阶 · 1.3w 浏览 · 原题

    多数互联网公司用 RC(读已提交):间隙锁少、死锁率低、主从半同步下数据更一致、便于从 Oracle 迁移。金融类强一致场景可能用 RR 或串行化。

  • #2646 MySQL 中如何实现分布式事务?
    进阶 · 1.7k 浏览 · 原题

    2PC/XA(强一致、性能差)、TCC(业务补偿)、本地消息表、MQ 最终一致、Seata AT 模式。按业务对一致性的真实要求选,别一律上强一致。

  • #2686 如何在 MySQL 中避免和优化死锁问题?
    进阶 · 780 浏览 · 原题

    死锁本质是循环等待。预防:统一加锁顺序、小事务快提交、用索引缩小锁范围、能降 RC 就降 RC。处理:读 LATEST DETECTED DEADLOCK 定位,业务侧重试。

SQL 调优与执行计划(11)

  • #612 如何使用 MySQL 的 EXPLAIN 语句进行查询分析?
    进阶 · 2.3w 浏览 · 原题

    重点看 type(const/eq_ref/ref/range 较好,ALL/index 差)、key 实际使用的索引、key_len、rows 预估扫描行数、filtered、Extra(Using index / Using filesort / Using temporary / Using index condition)。8.0 可用 EXPLAIN ANALYZE 看真实耗时。

  • #616 MySQL 中如何进行 SQL 调优?
    进阶 · 2.8w 浏览 · 原题

    定位:慢查询日志 + long_query_time + pt-query-digest → EXPLAIN 分析 → 加/改索引或改写 SQL(去掉 select *、避免深分页和函数运算、大查询拆小)→ 表结构与分区 → 缓存/读写分离/分库分表 → 参数与硬件。

  • #617 MySQL 中的数据排序是怎么实现的?
    基础 · 6.1w 浏览 · 原题

    有合适索引则直接按索引顺序返回,免排序;否则在 sort_buffer 中做 filesort:全字段排序(一次取全行)或 rowid 排序(先取 id 再回表),由 max_length_for_sort_data 决定。

  • #629 为什么在 MySQL 中不推荐使用多表 JOIN?
    进阶 · 1.2w 浏览 · 原题

    JOIN 需要 join buffer / 临时表,无索引时退化笛卡尔积,大表 JOIN 执行计划不可控,分库分表后跨库无法 JOIN;建议小表驱动大表、控制在 3 表以内、复杂分析走数仓。

  • #630 MySQL 中如何解决深度分页的问题?
    进阶 · 2.0w 浏览 · 原题

    limit 100000,10 需要先扫描并丢弃 10 万行。优化:延迟关联(先用覆盖索引取主键再 JOIN 回表)、游标法(where id > 上次最大 id)、按业务限制可翻页深度。

  • #631 如何在 MySQL 中监控和优化慢 SQL?
    进阶 · 1.5w 浏览 · 原题

    开启 slow_query_log 与 long_query_time,用 mysqldumpslow / pt-query-digest 聚合分析;EXPLAIN 定位;再按"加索引→改写 SQL→拆表→归档"逐级处理。

  • #1214 MySQL 中 LIMIT 100000000, 10 和 LIMIT 10 的执行速度是否相同?
    基础 · 1.1w 浏览 · 原题

    不同。limit 10 直接取 10 行即返回;limit 100000000,10 要先定位并丢弃前 1 亿行(可能还要回表),越往后越慢。

  • #2675 MySQL 中常见的 JOIN 优化策略有哪些?
    进阶 · 426 浏览 · 原题

    小表驱动大表、被驱动表的关联列必须有索引、适当调大 join_buffer_size、避免 SELECT *、超过 3 表考虑冗余字段或走数仓。

  • #2680 如何在 MySQL 中使用 EXPLAIN ANALYZE 命令优化查询?
    进阶 · 409 浏览 · 原题

    8.0.18+ 的 EXPLAIN ANALYZE 会真正执行 SQL,输出 actual time / rows / loops,可与优化器预估对比,直接暴露统计信息偏差。

  • #2683 MySQL 中的 Query Rewrite 插件是什么?如何使用它来优化查询?
    进阶 · 124 浏览 · 原题

    8.0 的 rewrite 插件,按 rewrite_rules 表里的规则改写 SQL(改写法、加条件、屏蔽某类语句),用于应急止血或统一规范;不改变业务代码。

  • #4040 MySQL 数据库的性能优化方法有哪些?
    进阶 · 1.2w 浏览 · 原题

    分层看:SQL 与索引层 → 表结构与范式层 → 架构层(缓存、读写分离、分库分表、消息削峰)→ 参数与硬件层。先定位瓶颈再动手,不要盲目调参数。

高可用与分库分表(18)

  • #618 如何在 MySQL 中避免单点故障?
    进阶 · 1.2w 浏览 · 原题

    主从复制 + 自动切换(MHA / Orchestrator / MGR)+ 代理中间件(ProxySQL、HAProxy)+ 多可用区部署 + 定期故障演练与备份校验。

  • #619 如何在 MySQL 中实现读写分离?
    进阶 · 1.3w 浏览 · 原题

    主从复制做数据同步,再通过中间件(ShardingSphere、ProxySQL、MyCat)或应用层多数据源路由读写;必须处理主从延迟导致的"读旧数据”。

  • #620 什么是 MySQL 的主从同步机制?它是如何实现的?
    进阶 · 2.1w 浏览 · 原题

    主库写 binlog → dump 线程推送给从库 → 从库 IO 线程写 relay log → SQL 线程重放。基于位点或 GTID(5.6+),GTID 让主从切换更简单。

  • #621 如何处理 MySQL 的主从同步延迟?
    进阶 · 1.8w 浏览 · 原题

    原因:大事务/大表 DDL、从库单线程重放(5.7 并行复制可缓解)、从库负载高或做备份、网络带宽、无主键表导致行锁放大。解决:并行复制、拆大事务、半同步复制、关键读走主库、缓存兜底。

  • #622 什么是分库分表?分库分表有哪些类型(或策略)?
    基础 · 1.9w 浏览 · 原题

    垂直分库(按业务拆库)、垂直分表(冷热字段拆分)、水平分表(按 range / hash / 一致性 hash 拆分)。目的是突破单库容量与单机 QPS 上限。

  • #623 如果组长要求你主导项目中的分库分表,大致的实施流程是?
    进阶 · 1.3w 浏览 · 原题

    评估数据量与增长趋势 → 选分片键(避免热点和跨片)→ 选中间件或 SDK → 双写 + 全量迁移 + 增量追平 + 数据校验 → 灰度切读切写 → 保留回滚方案。

  • #624 对数据库进行分库分表可能会引发哪些问题?
    进阶 · 1.1w 浏览 · 原题

    跨片 join、分布式事务、全局唯一 ID、跨片分页/排序/聚合、扩容再平衡(数据迁移)、运维与监控复杂度、SQL 兼容性限制。

  • #2632 MySQL 的主从复制原理是什么?常见的复制类型有哪些?
    进阶 · 1.8k 浏览 · 原题

    主库写 binlog → dump 线程推送 → 从库 IO 线程写 relay log → SQL 线程重放。复制类型:异步、半同步、组复制(MGR)、多源复制、延迟复制。

  • #2635 MySQL 中如何实现分库分表?常见的分库分表策略有哪些?
    进阶 · 1.5k 浏览 · 原题

    垂直分库(按业务)、垂直分表(冷热字段)、水平分表(range/hash/一致性哈希)。用中间件(ShardingSphere、MyCat)或 SDK 路由;难点是跨片 JOIN、分布式事务、全局 ID。

  • #2711 MySQL 的 MHA(Master High Availability)架构是什么?如何进行配置?
    深入 · 435 浏览 · 原题

    MHA:主库故障时对比各从库 relay log 选出数据最新的,提升为新主,其余从库重新指向;配合 VIP 或 ProxySQL 切流量。注意 MHA 已停止维护,新项目多用 Orchestrator 或 MGR。

  • #2714 如何在 MySQL 中配置 Galera Cluster 以实现多主复制?
    深入 · 244 浏览 · 原题

    Galera(PXC / MariaDB Galera):基于写集(writeset)的同步多主复制,事务提交前需多数派认证(certification),强一致但写性能受最慢节点制约。

  • #2717 MySQL 中的 GTID(Global Transaction ID)在数据复制中的作用是什么?
    进阶 · 207 浏览 · 原题

    每个事务带 server_uuid:事务号,从库靠 GTID 自动定位位点(MASTER_AUTO_POSITION=1),主从切换无需人工找位点,也便于并行复制与拓扑变更。

  • #2720 MySQL 中的半同步复制是如何工作的?
    进阶 · 257 浏览 · 原题

    主库提交后等待至少 N 个从库确认收到 binlog 才返回客户端;AFTER_SYNC 模式先等确认再提交,比 AFTER_COMMIT 更安全;超时会退化为异步。

  • #2722 如何在 MySQL 中实现多主复制?
    深入 · 376 浏览 · 原题

    方案:MGR 多主模式、Galera/PXC、双主 + 自增步长错开(auto_increment_increment/offset)。核心难点是写冲突检测与唯一键冲突,业务要能容忍或重试。

  • #2724 如何在 MySQL 中配置和使用 ProxySQL 以实现高可用性?
    进阶 · 152 浏览 · 原题

    MySQL 协议代理:读写分离、连接池复用、按规则路由、后端故障自动摘除、SQL 防火墙。常与 MHA/MGR 配合,做应用无感的流量切换。

  • #2727 MySQL 的 MHA 和 Group Replication 有什么区别?
    进阶 · 229 浏览 · 原题

    MHA 是外部管理工具 + 传统异步/半同步复制,切换可能丢数据,已停更;MGR 是官方组复制(Paxos 变体),内置故障检测与自动选主,强一致但只支持 InnoDB、写放大明显。

  • #2730 MySQL 的 NDB Cluster 如何实现高可用性?
    进阶 · 157 浏览 · 原题

    NDB Cluster 是 MySQL 官方内存型分布式集群(NDB 引擎):无共享架构、数据自动分片、支持多主写入,适合电信级高并发;但内存占用大、SQL 支持有限、运维复杂。

  • #3179 如何实现数据库的不停服迁移?
    进阶 · 1.1w 浏览 · 原题

    双写(新老库同时写)或影子表 → 用 binlog/DTS/Canal 做增量追平 → 全量 + 增量数据校验 → 灰度切读 → 切写 → 观察期后下线老库;全程保留回滚开关。

备份与恢复(9)

  • #2608 在 MySQL 中如何执行数据库备份和恢复操作?
    进阶 · 934 浏览 · 原题

    备份:mysqldump(逻辑)或 XtraBackup(物理);恢复:起新实例 → 恢复全备 → 用 mysqlbinlog 应用增量到目标点 → 校验 → 切流。

  • #2691 MySQL 中的备份和恢复策略是什么?包括物理备份和逻辑备份
    进阶 · 449 浏览 · 原题

    物理备份(XtraBackup 热备、文件快照)快、适合大库;逻辑备份(mysqldump)灵活、跨版本。策略:周期全备 + 增量 + binlog 归档 + 异地存放 + 定期恢复演练。

  • #2694 MySQL 的 binlog 日志在数据恢复中的作用是什么?
    深入 · 1.2k 浏览 · 原题

    全备恢复后,用 mysqlbinlog 重放备份点之后的 binlog(按时间/位点/GTID),恢复到误操作前一刻。这就是 PITR 的核心,binlog 必须开 ROW 格式并长期归档。

  • #2697 如何在 MySQL 中使用 Percona XtraBackup 工具进行热备份?
    进阶 · 190 浏览 · 原题

    Percona 开源物理热备工具:拷贝数据文件同时记录 redo LSN,只在开始和结束短暂加 FTWRL,全程不锁表;支持增量备份、流式压缩、单库单表备份。

  • #2700 如何在 MySQL 中进行数据库的灾难恢复?
    进阶 · 436 浏览 · 原题

    先保现场(别急着重启)→ 评估影响范围与 RTO/RPO → 最近全备 + binlog 恢复到故障点 → 数据校验 → 切流。平时必须有演练,否则真出事不敢操作。

  • #2701 MySQL 中 mysqldump 和 mysqlpump 工具的区别是什么?
    进阶 · 249 浏览 · 原题

    mysqldump 单线程逻辑备份、成熟稳定;mysqlpump 支持并行、压缩、按库表过滤,但 8.0.34 起已废弃,官方推荐 MySQL Shell 的 dump utility(支持并行与压缩)。

  • #2704 如何在 MySQL 中配置和管理 GTID(Global Transaction ID)以实现数据恢复?
    进阶 · 167 浏览 · 原题

    GTID 让每个事务有全局唯一标识(uuid:事务号),恢复时可指定 GTID 集合重放,不用手工算 binlog 位点;主从切换后也无需 CHANGE MASTER 指定位点。

  • #2707 MySQL 中如何使用 mysqlbinlog 工具进行二进制日志恢复?
    进阶 · 255 浏览 · 原题

    把 binlog 解析成可读 SQL:–start-datetime / –stop-datetime / –start-position / –include-gtids;恢复前先用 –base64-output=DECODE-ROWS -v 确认内容再执行。

  • #2710 MySQL 中如何设置和管理备份策略以实现自动化备份?
    进阶 · 232 浏览 · 原题

    crontab + XtraBackup(周全备 + 日增备)+ binlog 实时归档到对象存储;监控备份是否成功、文件大小是否异常;每月至少做一次真实恢复演练。

监控与诊断(5)

  • #2648 MySQL 的性能监控工具有哪些?比如 Performance Schema 和 InnoDB Monitor 的功能是什么?
    进阶 · 999 浏览 · 原题

    Performance Schema(等待/锁/语句级细粒度事件)+ sys schema(易读视图)+ SHOW ENGINE INNODB STATUS / InnoDB Monitor + Prometheus & mysqld_exporter。

  • #2651 如何在 MySQL 中配置和使用慢查询日志?
    进阶 · 1.3k 浏览 · 原题

    slow_query_log=ON、long_query_time(建议 1s)、log_queries_not_using_indexes;用 mysqldumpslow 或 pt-query-digest 聚合;注意日志量本身的 IO 开销。

  • #2657 如何在 MySQL 中使用 pt-query-digest 工具来分析查询性能?
    进阶 · 217 浏览 · 原题

    Percona 工具,把慢日志聚合成"按总耗时排序"的报告:总耗时、调用次数、平均耗时、扫描行数、样例 SQL。先治总耗时最高的那几条。

  • #2659 如何使用 MySQL 的 Event Scheduler 来定期执行优化任务?
    进阶 · 186 浏览 · 原题

    事件调度器(类似 cron):CREATE EVENT 定时执行 SQL,用于定期归档、汇总。需 event_scheduler=ON;主从环境注意只在一个节点启用,避免重复执行。

  • #2662 如何配置和使用 MySQL 的 Performance Schema?
    进阶 · 173 浏览 · 原题

    内置性能库,以 instrument(采集点)+ consumer(消费表)两段式开关控制开销;可按需开启语句、等待、锁、IO 事件,生产上不要全开。

表设计与数据类型(15)

  • #613 MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
    基础 · 2.5w 浏览 · 原题

    count(*) 与 count(1) 等价,InnoDB 会选最小的二级索引扫描;count(字段) 会跳过 NULL 且可能无法用索引。InnoDB 不像 MyISAM 缓存总行数,必须扫。

  • #614 MySQL 中 int(11) 的 11 表示什么?
    基础 · 1.5w 浏览 · 原题

    只是显示宽度,不限制存储范围也不影响性能;仅在配合 ZEROFILL 时有补齐效果。MySQL 8.0.17 起该宽度对整型已废弃。

  • #615 MySQL 中 varchar 和 char 有什么区别?
    基础 · 1.6w 浏览 · 原题

    char 定长、不足补空格、读取时去尾空格,适合短定长(如手机号、MD5);varchar 变长、额外 1~2 字节存长度、更省空间。注意 varchar(n) 的 n 是字符数不是字节数。

  • #1217 MySQL 中 DATETIME 和 TIMESTAMP 类型的区别是什么?
    基础 · 9.5k 浏览 · 原题

    DATETIME 占 8 字节、与时区无关、范围 1000-01-01 ~ 9999-12-31;TIMESTAMP 占 4 字节、存取时按 time_zone 转换、范围到 2038-01-19。跨时区业务用 timestamp 更省,但注意 2038 问题。

  • #1219 数据库的三大范式是什么?
    基础 · 1.6w 浏览 · 原题

    1NF:字段不可再分;2NF:非主键字段完全依赖主键(消除部分依赖);3NF:消除传递依赖。实际设计常为性能做反范式冗余。

  • #1377 MySQL 中 TEXT 类型最大可以存储多长的文本?
    进阶 · 9.2k 浏览 · 原题

    TEXT 最大 64KB、MEDIUMTEXT 16MB、LONGTEXT 4GB;按字符集不同能存的字符数不同(utf8mb4 下 TEXT 约 1.6 万字符)。大文本建议拆到独立表或对象存储。

  • #1378 MySQL 中 AUTO_INCREMENT 列达到最大值时会发生什么?
    进阶 · 9.0k 浏览 · 原题

    达到上限后再插入会报主键冲突(Duplicate entry),不会自动回绕或重置。所以自增主键要用 bigint unsigned。

  • #1379 在 MySQL 中存储金额数据,应该使用什么数据类型?
    基础 · 1.2w 浏览 · 原题

    用 DECIMAL(定点数,精确保存小数),绝不能用 float/double(二进制浮点有精度误差)。也可用 BIGINT 以"分"为单位存整数。

  • #1418 什么是数据库的视图?
    进阶 · 1.0w 浏览 · 原题

    视图是基于查询定义的虚拟表,本身不存数据(MySQL 不支持物化视图)。作用:简化复杂查询、隐藏敏感列做权限控制。含聚合/去重等场景不可更新。

  • #1476 为什么不推荐在 MySQL 中直接存储图片、音频、视频等大容量内容?
    进阶 · 1.0w 浏览 · 原题

    大字段撑大行与页,导致页分裂、buffer pool 命中率下降、备份恢复与网络传输变慢、主从延迟。应存到对象存储(OSS/S3),库里只留 URL。

  • #1478 MySQL 中 VARCHAR(100) 和 VARCHAR(10) 的区别是什么?
    基础 · 1.1w 浏览 · 原题

    存同样内容时占用空间相同(varchar 变长);差别在:长度校验上限不同、内存临时表/排序时按最大长度分配空间,过大的声明会浪费内存。

  • #4943 什么是数据库的逻辑删除?数据库的物理删除和逻辑删除有什么区别?
    基础 · 9.9k 浏览 · 原题

    逻辑删除用 is_deleted 等标记位代替物理删除,数据可追溯、可恢复;代价是表持续膨胀、查询必须带条件(易漏)、唯一索引需改造、需要定期归档。

  • #4944 什么是数据库的逻辑外键?数据库的物理外键和逻辑外键各有什么优缺点?
    进阶 · 8.7k 浏览 · 原题

    物理外键由数据库维护约束与级联,一致性强但有额外锁开销、影响分库分表和批量导入;逻辑外键由应用层保证,灵活但依赖代码质量。互联网项目多用逻辑外键。

  • #9805 MySQL 在设计表(建表)时需要注意什么?
    进阶 · 8.8k 浏览 · 原题

    选 InnoDB + utf8mb4;主键用自增 bigint unsigned;字段尽量 NOT NULL 并给默认值;控制行长、大字段拆表;加注释;预留扩展字段;按查询模式设计索引。

  • #12134 MySQL一张表最多可以有多少列?
    基础 · 5.1k 浏览 · 原题

    InnoDB 硬限制 1017 列;实际还受行长度 65535 字节和页大小(单行不能超过半页约 8126 字节)约束。

SQL 语法与函数(6)

  • #632 MySQL 中 DELETE、DROP 和 TRUNCATE 的区别是什么?
    进阶 · 1.0w 浏览 · 原题

    DELETE 是 DML:可带 where、可回滚、逐行删、慢、触发触发器;TRUNCATE 是 DDL:清空全表、不可回滚、重置自增、快;DROP 直接删表结构和数据。

  • #633 MySQL 中 INNER JOIN、LEFT JOIN 和 RIGHT JOIN 的区别是什么?
    基础 · 1.1w 浏览 · 原题

    INNER JOIN 取交集;LEFT JOIN 保留左表全部、右表无匹配补 NULL;RIGHT JOIN 反之。MySQL 不支持 FULL OUTER JOIN,可用 LEFT UNION RIGHT 模拟。

  • #1218 为什么阿里巴巴的 Java 手册不推荐使用存储过程?
    进阶 · 1.1w 浏览 · 原题

    难调试、难做版本管理、逻辑散落在数据库、移植性差、影响分库分表与扩展、占用数据库 CPU。业务逻辑应放应用层。

  • #1376 在 MySQL 中,你使用过哪些函数?
    基础 · 1.1w 浏览 · 原题

    字符串(concat、substr、replace)、日期(now、date_format、date_add)、数值(round、ceil)、聚合(sum、avg、group_concat)、JSON(json_extract)。注意在字段上套函数会导致索引失效。

  • #1419 什么是数据库的游标?
    进阶 · 9.4k 浏览 · 原题

    游标用于在存储过程/函数中逐行遍历结果集,服务端持有。性能差、占用连接资源,一般用应用层分页替代。

  • #1482 MySQL 中 EXISTS 和 IN 的区别是什么?
    基础 · 1.1w 浏览 · 原题

    EXISTS 逐行驱动外表做子查询,外表小、内表大且内表有索引时更优;IN 先物化子查询结果再比对,子查询结果集小的时候更快。IN 列表含 NULL 会导致结果为空,需要特别注意。

数据同步与入库(5)

  • #12251 什么是数据全量同步和增量同步?它们各有什么优缺点?
    基础 · 8.3k 浏览 · 原题

    全量同步:一次性搬全部数据,简单但耗时长、易锁表影响业务;增量同步:基于 binlog / 时间戳 / CDC 捕获变更,实时但依赖顺序保证和幂等去重。生产中通常"全量初始化 + 增量追平"。

  • #12252 什么是游标 Cursor 分页?相比传统 LIMIT OFFSET 分页有什么优势?
    基础 · 8.1k 浏览 · 原题

    游标分页用 where id > 上一页最大 id order by id limit n,避免 offset 扫描,性能稳定;缺点是不能随机跳页,只适合"下一页"式翻页。

  • #12255 什么是 CDC(Change Data Capture)?常见的 CDC 工具有哪些?
    基础 · 3.6k 浏览 · 原题

    CDC(Change Data Capture):从数据库日志(MySQL binlog、MongoDB oplog、Oracle redo)解析出数据变更流。常见工具:Canal、Debezium、Flink CDC、Maxwell、阿里 DTS。

  • #12256 什么是批量数据入库?相比单条插入有什么优势?
    基础 · 9.8k 浏览 · 原题

    批量入库减少网络往返和事务提交次数。手段:多值 INSERT、LOAD DATA INFILE、JDBC rewriteBatchedStatements=true。注意控制单批大小(避免超大事务、锁范围过大、binlog 膨胀)。

  • #12258 多线程并发同步数据时(数据库的数据同步到数仓中)需要注意什么问题?
    基础 · 5.8k 浏览 · 原题

    按主键或分片切分任务避免写冲突;控制并发度防止压垮源库;保证顺序与幂等(唯一键去重、版本号);支持断点续传、失败重试与数据校验。


Redis

缓存、分布式锁、集群与故障 · 共 53 题

基础与数据结构(22)

  • #634 Redis 通常应用于哪些场景?
    基础 · 3.5w 浏览 · 原题

    缓存(旁路缓存)、分布式锁、计数器与限流、排行榜(ZSet)、会话共享、消息队列(Stream/List)、Geo 附近的人、布隆过滤器防穿透、bitmap 签到统计。

  • #635 Redis 为什么这么快?
    进阶 · 3.2w 浏览 · 原题

    纯内存操作 + 单线程无锁竞争 + IO 多路复用(epoll)+ 高效数据结构(SDS、跳表、listpack)+ 自定义 RESP 协议开销小。

  • #636 为什么 Redis 设计为单线程?6.0 版本为何引入多线程?
    进阶 · 2.6w 浏览 · 原题

    瓶颈在内存和网络带宽而非 CPU,单线程避免了锁竞争与上下文切换,实现也简单。6.0 引入多线程只用于网络读写(IO 线程),命令执行仍是单线程,保证原子性。

  • #637 Redis 中常见的数据类型有哪些?
    基础 · 2.8w 浏览 · 原题

    String、Hash、List、Set、ZSet(Sorted Set),以及 Bitmap、HyperLogLog、Geo、Stream 等扩展类型。

  • #638 Redis 中跳表的实现原理是什么?
    深入 · 2.5w 浏览 · 原题

    多层有序链表 + 随机层数(幂次定律,每次 1/4 概率升层),查找/插入 O(log n);相比红黑树实现更简单,范围查询天然有序、代码量少。

  • #639 Redis 的 hash 是什么?
    进阶 · 2.3w 浏览 · 原题

    field-value 的哈希表,适合存对象的部分字段更新。元素少且短时用 listpack(旧版 ziplist),超过阈值转 hashtable。

  • #640 Redis 和 Memcached 有哪些区别?
    进阶 · 1.6w 浏览 · 原题

    Redis 支持多种数据结构、持久化、主从/哨兵/集群、事务与 Lua、发布订阅;Memcached 只有纯 KV、纯内存、多线程,适合简单大并发缓存。

  • #661 Redis String 类型的底层实现是什么?(SDS)
    进阶 · 1.4w 浏览 · 原题

    SDS(Simple Dynamic String):用 len/free 记录长度,取长度 O(1);二进制安全(不靠 \0 判断结尾);空间预分配与惰性释放;杜绝缓冲区溢出。

  • #662 如何使用 Redis 快速实现排行榜?
    进阶 · 1.8w 浏览 · 原题

    ZSet:ZADD 写入分数,ZREVRANGE 取 Top N,ZREVRANK 查排名,ZINCRBY 加分。海量榜单可按周期分 key 再合并。

  • #663 如何使用 Redis 快速实现布隆过滤器?
    进阶 · 1.8w 浏览 · 原题

    位数组 + 多个哈希函数映射。特点:判断"不存在"一定准确,判断"存在"有误判;不支持删除。Redis 4.0 起有官方 RedisBloom 模块(BF.RESERVE / BF.ADD / BF.EXISTS)。

  • #664 如何使用 Redis 统计大量用户唯一访问量(UV)?
    进阶 · 9.7k 浏览 · 原题

    HyperLogLog:PFADD 计数、PFCOUNT 估算,固定约 12KB,标准误差 0.81%,适合 UV 这种允许误差的场景;需要精确值时用 Set 或按天分桶的 Bitmap。

  • #665 Redis 中的 Geo 数据结构是什么?
    进阶 · 8.3k 浏览 · 原题

    基于 ZSet + GeoHash 编码,GEOADD 添加坐标、GEODIST 算距离、GEORADIUS / GEOSEARCH 查附近的人。

  • #666 你在项目中使用的 Redis 客户端是什么?
    基础 · 1.7w 浏览 · 原题

    Jedis(阻塞式、轻量、非线程安全,需连接池)、Lettuce(基于 Netty,异步/响应式、线程安全,Spring Boot 2.x 默认)、Redisson(封装分布式锁、布隆过滤器等高级能力)。

  • #667 Redis 字符串类型的最大值大小是多少?
    基础 · 9.7k 浏览 · 原题

    512MB。

  • #827 Redis 中 EMBSTR 对象的阈值设置为何为 44?其调整历史是什么?
    深入 · 7.3k 浏览 · 原题

    embstr 用一次 malloc 分配 redisObject + SDS,总大小需 ≤ 64 字节:64 - redisObject(16) - sdshdr8(3) - \0(1) = 44。早期 sdshdr 占 8 字节时阈值是 39,3.2 紧凑化后变为 44。

  • #880 Redis List 类型的常见操作命令有哪些?
    进阶 · 8.3k 浏览 · 原题

    LPUSH / RPUSH / LPOP / RPOP / LRANGE / LLEN / LINSERT / LREM / LTRIM / BLPOP / BRPOP;底层 quicklist。

  • #881 如何在 Redis 中实现队列和栈数据结构?
    进阶 · 7.8k 浏览 · 原题

    队列:LPUSH + BRPOP(或 RPUSH + BLPOP);栈:LPUSH + LPOP。阻塞版本避免轮询空转。

  • #882 Redis 中的 Ziplist 和 Quicklist 数据结构的特点是什么?
    进阶 · 8.3k 浏览 · 原题

    ziplist:一整块连续内存、省空间,但插入删除要 realloc,且可能连锁更新;quicklist:双向链表,每个节点挂一个 ziplist(3.2+ 的 List 实现),兼顾内存与操作效率。

  • #886 Redis 的 ListPack 数据结构是什么?
    进阶 · 7.3k 浏览 · 原题

    ListPack 是 5.0 引入的紧凑结构,用于替代 ziplist:尾部记录总长度,解决连锁更新问题。目前用于 Hash、ZSet 的小对象存储。

  • #5206 Redis 源码中有哪些巧妙的设计,举几个典型的例子?
    深入 · 8.9k 浏览 · 原题

    可举例:SDS 的空间预分配与惰性释放、字典的渐进式 rehash(分多次搬桶,避免大字典一次性阻塞)、跳表的随机层数、共享整数对象池(0~9999 复用)、listpack 尾指针解决连锁更新、单线程事件循环 ae 的时间/文件事件调度。

  • #10389 Redis Zset 的实现原理是什么?
    基础 · 1.2w 浏览 · 原题

    元素少且短时用 listpack(旧版 ziplist)编码;数据量大时使用 dict(member → score,O(1) 查分数)+ skiplist(按 score 有序,支持范围与排名查询)双结构。

  • #10739 为什么 Redis Zset 用跳表实现而不是红黑树?B+树?
    进阶 · 7.7k 浏览 · 原题

    跳表实现范围查询更自然(底层链表有序,找到起点顺序遍历即可),代码比红黑树简单得多;B+ 树是为磁盘 IO 设计的,内存场景没必要。

内存管理与淘汰(4)

  • #642 Redis 数据过期后的删除策略是什么?
    进阶 · 2.1w 浏览 · 原题

    惰性删除(访问时才判断是否过期)+ 定期删除(每 100ms 随机抽查一批过期 key)。从库不主动删过期 key,等主库删除后同步 DEL。

  • #643 Redis 中有哪些内存淘汰策略?
    进阶 · 1.9w 浏览 · 原题

    8 种:noeviction(默认,写满报错)、allkeys-lru / allkeys-lfu / allkeys-random、volatile-lru / volatile-lfu / volatile-random / volatile-ttl。4.0 起支持 LFU。

  • #937 Redis 中的内存碎片化是什么?如何进行优化?
    进阶 · 7.7k 浏览 · 原题

    频繁增删不同大小的对象导致内存碎片。指标 mem_fragmentation_ratio(>1.5 说明碎片多、<1 说明用了 swap)。优化:重启、开启 activedefrag 自动整理、调整 jemalloc 配置、大小相近的对象复用。

  • #939 Redis 的虚拟内存(VM)机制是什么?
    深入 · 7.6k 浏览 · 原题

    Redis 2.x 曾尝试把冷 value 换到磁盘(VM 机制),因性能差、实现复杂在 2.8 后废弃;现在用 SSD + 集群分片 + 多实例解决内存不足。

持久化(2)

  • #648 Redis 的持久化机制有哪些?
    进阶 · 2.2w 浏览 · 原题

    RDB 快照(fork + COW,体积小、恢复快,但可能丢数据)+ AOF 追加写(appendfsync always / everysec / no,可 bgrewriteaof 重写压缩)。4.0+ 支持混合持久化(RDB 头 + AOF 增量)。

  • #649 Redis 在生成 RDB 文件时如何处理请求?
    进阶 · 1.6w 浏览 · 原题

    fork 出子进程做快照,利用 Copy-On-Write,主进程继续处理请求;fork 本身会阻塞(内存越大越久),写入量大会触发大量页复制、内存翻倍风险。

高可用与集群(8)

  • #650 Redis 的哨兵机制是什么?
    进阶 · 1.9w 浏览 · 原题

    监控主从:定时 PING;主观下线(单哨兵判定)→ 客观下线(超过 quorum 数量)→ 哨兵间选举 leader → 由 leader 执行主从切换并通知客户端新主地址。

  • #651 Redis 主从复制的实现原理是什么?
    进阶 · 4.3w 浏览 · 原题

    从库发 PSYNC(带 runid + offset)→ 主库 FULLRESYNC 生成 RDB 并缓冲期间的写命令 → 从库加载后持续接收命令流;断线重连时若 offset 在 repl_backlog 内则只做部分重同步。

  • #652 Redis 集群的实现原理是什么?
    进阶 · 3.4w 浏览 · 原题

    16384 个哈希槽分配到各主节点,key 用 CRC16(key) mod 16384 定位槽位;节点间 Gossip 协议通信;主节点故障时从节点基于投票自动 failover。

  • #653 Redis 集群会出现脑裂问题吗?
    进阶 · 1.8w 浏览 · 原题

    会。网络分区时旧主仍在接受写入,切换后这部分数据丢失。Redis 用 min-replicas-to-write + min-replicas-max-lag 限制"从库不足/延迟过大时拒绝写入"来降低风险。

  • #838 Redis 主从复制的常见拓扑结构有哪些?
    进阶 · 8.1k 浏览 · 原题

    一主一从、一主多从(读扩展)、级联/树形复制(减轻主库推送压力,但延迟叠加)、主从 + 哨兵(高可用)。

  • #883 Redis 复制延迟的常见原因有哪些?
    进阶 · 7.7k 浏览 · 原题

    主库写入量大或存在大 key、主从网络带宽受限、从库单线程重放慢、从库执行阻塞命令(KEYS、大范围集合操作)、从库同时做持久化。用 INFO replication 看 master_repl_offset 差值。

  • #885 Redis Cluster 模式与 Sentinel 模式的区别是什么?
    进阶 · 8.7k 浏览 · 原题

    Sentinel:主从 + 自动故障转移,数据全量存在每个节点,无法水平扩容,适合中小规模;Cluster:数据分片(16384 slot)+ 内置故障转移,支持水平扩展,运维更复杂。

  • #984 在 Redis 集群中,如何根据键定位到对应的节点?
    进阶 · 7.9k 浏览 · 原题

    CRC16(key) mod 16384 得到槽位 → 查本地缓存的槽位-节点映射表 → 直接连对应节点;若槽已迁移则返回 MOVED/ASK 重定向,客户端更新路由缓存。

缓存三大问题(5)

  • #646 Redis 中的 Big Key 问题是什么?如何解决?
    进阶 · 1.9w 浏览 · 原题

    单个 value 过大(String > 10KB)或元素过多(Hash/List/ZSet 超 5000)。危害:网络阻塞、删除/过期卡顿(用 UNLINK 异步删)、集群数据倾斜、持久化耗时。方案:拆分、压缩、换结构。

  • #647 如何解决 Redis 中的热点 key 问题?
    进阶 · 2.0w 浏览 · 原题

    单个 key 的 QPS 打满某节点。方案:本地缓存(多级缓存)、key 加随机后缀打散到多个 key、读写分离 + 多副本、限流降级、热点探测(京东 hotkey)。

  • #659 Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么?
    进阶 · 2.2w 浏览 · 原题

    击穿:单个热点 key 过期瞬间大量请求打库(互斥锁重建 / 逻辑过期);穿透:查询不存在的数据绕过缓存(布隆过滤器 / 缓存空值);雪崩:大量 key 同时过期或 Redis 宕机(TTL 加随机、多级缓存、熔断降级、集群高可用)。

  • #660 Redis 中如何保证缓存与数据库的数据一致性?
    进阶 · 2.2w 浏览 · 原题

    主流 Cache Aside:读时未命中查库回填;写时先更新数据库再删除缓存。进一步加强:延迟双删、订阅 binlog(Canal)异步删缓存、给缓存设 TTL 做最终兜底。强一致做不到,只能最终一致。

  • #668 Redis 性能瓶颈时如何处理?
    进阶 · 1.4w 浏览 · 原题

    排查顺序:SLOWLOG GET 找慢命令 → redis-cli –bigkeys 找大 key → INFO 看内存/命中率/连接数 → 网络带宽与延迟 → CPU 单核打满 → 持久化 fork 与 AOF 重写阻塞 → 内存不足触发频繁淘汰。

分布式锁(6)

  • #655 Redis 中如何实现分布式锁?
    进阶 · 2.4w 浏览 · 原题

    SET key uniqueValue NX PX 30000 加锁;释放时用 Lua 脚本比对 value 再 DEL,避免误删他人锁。

  • #656 分布式锁在未完成逻辑前过期怎么办?
    深入 · 1.1w 浏览 · 原题

    业务执行时间超过锁有效期,锁提前释放导致并发进入。方案:看门狗自动续期(Redisson)、合理评估 TTL、fencing token(递增版本号)防止旧持有者写入。

  • #657 Redis 的 Red Lock 是什么?你了解吗?
    进阶 · 1.4w 浏览 · 原题

    向 N 个独立 master 依次加锁,在超过半数且总耗时小于锁有效期内成功才算拿到锁。争议点:强依赖各节点时钟、GC 停顿会导致误判,Martin Kleppmann 与 antirez 有过公开争论。

  • #658 Redis 实现分布式锁时可能遇到的问题有哪些?
    进阶 · 1.8w 浏览 · 原题

    锁过期、误删他人锁、不可重入、主从切换丢锁(异步复制)、网络分区、锁粒度过粗影响吞吐。

  • #6305 说说 Redisson 分布式锁的原理?
    进阶 · 1.9w 浏览 · 原题

    基于 Lua 脚本保证"判断是否存在 + 计数 + 设置过期"的原子性,用 Hash 结构实现可重入计数;释放时扣减计数,归零才真正 DEL 并 publish 通知等待者。

  • #10745 Redisson 看门狗(watch dog)机制了解吗?
    进阶 · 1.2w 浏览 · 原题

    加锁成功后启动后台定时任务,每 internalLockLeaseTime/3(默认 10 秒)检查一次,把锁的过期时间重置为 30 秒;服务宕机则停止续期,锁到期自动释放。避免"业务没跑完锁就过期"。

事务、Lua 与 Pipeline(6)

  • #641 Redis 支持事务吗?如何实现?
    进阶 · 2.2w 浏览 · 原题

    支持,但很弱:MULTI 开启 → 命令入队 → EXEC 执行;不支持回滚(运行期错误会继续执行),无隔离级别概念;可用 WATCH 实现乐观锁(CAS)。

  • #644 Redis 的 Lua 脚本功能是什么?如何使用?
    进阶 · 1.9w 浏览 · 原题

    Lua 脚本在服务端原子执行,减少网络往返,可组合多命令。典型用途:分布式锁的原子释放、令牌桶限流、秒杀库存扣减。注意脚本要短,避免长时间阻塞。

  • #645 Redis 的 Pipeline 功能是什么?
    进阶 · 1.5w 浏览 · 原题

    客户端一次性发送多条命令、一次性读回结果,减少 RTT。不保证原子性,命令之间可能插入其他客户端的命令;与事务的区别是没有 MULTI/EXEC 包裹。

  • #654 Redis 的订阅发布功能是什么?你了解吗?
    进阶 · 1.2w 浏览 · 原题

    PUBLISH/SUBSCRIBE 的即时消息通道,不持久化、不保证送达、离线消息丢失。适合配置推送、通知类场景,不能当可靠消息队列用;集群模式下是广播到所有节点。

  • #837 Redis 中原生批处理命令(MSET、MGET)与 Pipeline 的区别是什么?
    进阶 · 7.2k 浏览 · 原题

    MSET/MGET 是单条命令带多个 key,服务端原子执行;Pipeline 是客户端打包多条独立命令,不保证原子性,cluster 模式下可能跨 slot 而受限。

  • #884 Redis 事务与关系型数据库事务的主要区别是什么?
    进阶 · 7.7k 浏览 · 原题

    Redis 事务不支持回滚、没有隔离级别、没有读已提交语义,出错继续执行;只在入队阶段语法错误时整体不执行。本质是"命令打包顺序执行"。


Oracle

金融与传统行业甲方常问,与 MySQL 对照记差异 · 共 40 题

体系结构与存储(10)

  • #2617 在 Oracle 数据库中,如何配置和管理用户角色?
    进阶 · 934 浏览 · 原题

    CREATE USER 建用户 → GRANT 系统权限(CREATE SESSION 等)与对象权限 → 用角色(CONNECT/RESOURCE/DBA 或自定义角色)批量授权;遵循最小权限原则,配 profile 限制资源、开审计跟踪敏感操作。

  • #2624 在 Oracle 数据库中,如何进行表的分区管理?
    进阶 · 839 浏览 · 原题

    ALTER TABLE … ADD / MODIFY / DROP / TRUNCATE / EXCHANGE PARTITION。范围分区要用 MAXVALUE 兜底并定期补新分区;EXCHANGE PARTITION 能秒级把普通表挂成分区(做数据归档);改分区后记得 UPDATE GLOBAL INDEXES 维护全局索引。

  • #2627 解释 Oracle 数据库的存储结构以及表空间的概念。
    进阶 · 1.1k 浏览 · 原题

    逻辑结构:数据库 → 表空间 → 段 → 区 → 数据块;物理结构:数据文件、控制文件、重做日志、归档日志、参数文件。表空间是逻辑单元,一个表空间可对应多个数据文件。

  • #2630 Oracle 中的 SGA 和 PGA 有什么区别?
    进阶 · 655 浏览 · 原题

    SGA 是实例级共享内存(buffer cache、shared pool、redo log buffer、large pool),所有会话共享;PGA 是每服务进程私有内存(排序区、哈希区、绑定变量),不可共享。

  • #2633 Oracle 中的 ASM(Automatic Storage Management)是什么?它如何优化存储性能?
    进阶 · 437 浏览 · 原题

    ASM 是 Oracle 的自动存储管理:以"磁盘组"方式管理裸设备,自动条带化 + 镜像(normal/high redundancy),支持在线加盘与再平衡,替代文件系统 + 卷管理器。

  • #2636 Oracle 的多租户架构(Multitenant Architecture)是什么?它的优点是什么?
    进阶 · 401 浏览 · 原题

    CDB(容器库)+ 多个 PDB(可插拔库),共享同一个实例与 SGA;优点是资源复用、统一打补丁升级、租户间隔离,云上多租户场景常用。

  • #2638 请说明 Oracle 数据库中的控制文件(Control File)的作用和管理方法。
    深入 · 352 浏览 · 原题

    二进制小文件,记录数据库物理结构(数据文件、redo 位置、SCN、备份信息、字符集)。必须多路复用(至少两份),丢失后只能用备份恢复或 rebuild 重建。

  • #2641 Oracle 中的表和索引组织表(IOT)有何不同?
    进阶 · 345 浏览 · 原题

    IOT(索引组织表)把整行数据存在 B 树索引的叶子节点,按主键有序,适合主键访问与范围扫描、省一次索引查找;普通堆表则是无序堆 + 独立索引。

  • #2644 Oracle 的集群文件系统(Cluster File System)有哪些特点?
    进阶 · 249 浏览 · 原题

    Oracle 集群文件系统(ACFS/OCFS2)为 RAC 提供共享存储上的集群文件系统,多节点可并发访问同一文件,支持统一挂载、快照与配额。

  • #2647 Oracle 的 Redo Log 和 Undo Log 有何区别?
    进阶 · 539 浏览 · 原题

    redo 记录"改成了什么"(物理变更,用于前滚、保证持久性);undo 记录"改之前是什么"(逻辑信息,用于回滚与一致性读)。redo 必须归档,undo 可自动管理。

备份与恢复(6)

  • #2692 Oracle 中的 RMAN 工具如何进行数据库备份和恢复?
    进阶 · 191 浏览 · 原题

    Oracle 官方备份工具:支持全备/增量/归档日志备份、块级校验、压缩加密、并行通道;配合恢复目录(catalog)管理备份元数据,可做增量更新备份(incremental update)。

  • #2695 如何在 Oracle 中进行增量备份和差异备份?
    进阶 · 275 浏览 · 原题

    level 0 是全备基线;level 1 cumulative 累积增量(相对最近一次 level 0);level 1 differential 差异增量(相对最近任意一次备份)。差异备份更快,但恢复要串更多备份集。

  • #2698 如何在 Oracle 中配置和使用 Data Pump 进行数据导出和导入?
    进阶 · 154 浏览 · 原题

    expdp/impdp:服务端高速导出导入,支持并行(parallel)、压缩、按对象/表空间/全库、以及 NETWORK_LINK 跨库直传,替代老 exp/imp。

  • #2702 Oracle 中的闪回查询(Flashback Query)功能如何实现数据恢复?
    进阶 · 177 浏览 · 原题

    基于 undo 的 AS OF TIMESTAMP/SCN 查询,可看到历史时刻的数据,用于纠正误更新、误删除;受 undo_retention 与 undo 表空间大小限制。

  • #2705 Oracle 的闪回数据库(Flashback Database)功能如何配置和使用?
    进阶 · 182 浏览 · 原题

    基于闪回日志把整个数据库回退到过去某时刻(FLASHBACK DATABASE),速度远快于"恢复备份 + 前滚",需开启 flashback on 并在 FRA 预留空间。

  • #2721 Oracle 的 Flashback 技术如何用于数据恢复和高可用性?
    进阶 · 133 浏览 · 原题

    Flashback 技术族:闪回查询(看历史数据)、闪回表(回退一张表)、闪回删除(回收站恢复 drop 的表)、闪回数据库(整库回退)、闪回事务查询(定位是哪个事务改的)。

高可用与容灾(8)

  • #2708 Oracle 的 Data Guard 配置中,如何使用 Fast-Start Failover 实现自动故障切换?
    进阶 · 122 浏览 · 原题

    Data Guard Broker 配 FSFO:观察者(observer)持续监控主库,心跳超时后自动把备库切主;关键参数 FastStartFailoverThreshold、FastStartFailoverAutoReinstate(原主恢复后自动重建为备库),切换后应用靠 TNS 或中间件重连。

  • #2712 Oracle Data Guard 如何实现高可用性和数据保护?
    进阶 · 215 浏览 · 原题

    基于 redo 传输的容灾方案:主库把 redo 传到备库重放。三种保护模式——最大保护(同步,主库等备库确认)、最大可用(同步但可降级)、最大性能(异步)。支持 switchover/failover。

  • #2715 Oracle RAC(Real Application Clusters)如何实现高可用性?
    进阶 · 176 浏览 · 原题

    多节点共享同一份存储、共用一个数据库,通过 Cache Fusion(内存融合)在节点间传数据块;实现实例级高可用与横向扩展,但需要共享存储与私网(Interconnect)。

  • #2718 如何在 Oracle 中配置和管理 Data Guard Broker?
    深入 · 140 浏览 · 原题

    Data Guard Broker 是 DG 的管理框架(dgmgrl):集中配置、监控、一键 switchover/failover,支持 Fast-Start Failover(观察者自动切换)。

  • #2723 Oracle 中的 Active Data Guard 如何配置和管理?
    进阶 · 110 浏览 · 原题

    Active Data Guard 让备库在持续应用 redo 的同时对外只读,可分流报表与查询;配合 real-time apply,延迟通常只有秒级。

  • #2725 Oracle 的 Data Guard 与 GoldenGate 有何不同?
    进阶 · 116 浏览 · 原题

    Data Guard 是整库级的物理/逻辑复制,通常要求同版本同平台,切换粒度是数据库;GoldenGate 是基于日志的逻辑复制,支持异构源、表级过滤与转换、双向复制。

  • #2728 Oracle 的 GoldenGate 如何实现实时数据集成和高可用性?
    进阶 · 134 浏览 · 原题

    GoldenGate 解析源库 redo/archive 生成逻辑变更,投递到目标库;支持异构数据库、表级过滤、字段映射、双向/多向复制,常用于迁移、双活与实时入仓。

  • #2731 Oracle 的 Data Guard 和 RAC 如何结合使用实现最高可用性?
    深入 · 175 浏览 · 原题

    RAC 解决机房内实例级高可用与扩展,Data Guard 解决机房级容灾;两者组合"本地 RAC + 异地 DG"是 Oracle 最高可用架构(MAA)。

性能诊断与调优(16)

  • #2610 描述在 Oracle 数据库中,如何优化查询性能。
    深入 · 1.8k 浏览 · 原题

    先看执行计划(EXPLAIN PLAN + DBMS_XPLAN)→ 检查统计信息是否新鲜 → 索引(B 树/位图/函数索引)是否匹配查询 → 避免隐式类型转换和函数包裹列 → 用绑定变量减少硬解析 → 大表靠分区裁剪 → 必要时用 SQL Profile / Baseline 固定计划。

  • #2649 Oracle 的 AWR(Automatic Workload Repository)报告如何用于性能调优?
    进阶 · 419 浏览 · 原题

    AWR 每小时采集一次性能快照存于 SYSAUX,用 awrrpt.sql 生成报告;重点看 Top 等待事件、SQL 统计(按 DB Time/CPU/逻辑读排序)、负载概要。

  • #2652 Oracle 的 ASH(Active Session History)如何用于分析性能瓶颈?
    进阶 · 257 浏览 · 原题

    ASH 每秒采样一次活动会话状态(v$active_session_history),能定位瞬时瓶颈;AWR 是小时级平均,ASH 是秒级快照,配合使用。

  • #2655 如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
    深入 · 301 浏览 · 原题

    SQL Profile 在不改 SQL 的前提下给优化器附加统计修正(选择性/基数),由 SQL Tuning Advisor 生成;比 Hints 更稳,且对应用透明。

  • #2658 Oracle 中的并行查询(Parallel Query)如何配置和优化?
    进阶 · 285 浏览 · 原题

    用并行度(DOP)把大查询拆给多个 slave 进程并行扫描/聚合,适合大表全扫与批量作业;OLTP 环境慎用,容易打满 IO 与 CPU。

  • #2660 如何在 Oracle 中使用 ADDM(Automatic Database Diagnostic Monitor)进行性能分析?
    深入 · 198 浏览 · 原题

    ADDM 基于 AWR 快照自动诊断,输出问题清单与建议(SQL 瓶颈、IO 热点、序列争用等);入口 EM 或 addmrpt.sql,通常与新出现的 Top 等待配合看。

  • #2663 Oracle 的 SQL Tuning Advisor 如何配置和使用?
    进阶 · 149 浏览 · 原题

    对单条 SQL 做深入分析,给出收集统计信息、建索引、接受 SQL Profile、重写 SQL 等建议;可通过 DBMS_SQLTUNE 在脚本里调用。

  • #2666 如何在 Oracle 中使用 SPM(SQL Plan Management)来管理执行计划?
    深入 · 164 浏览 · 原题

    SPM 把"验证过的好计划"固化成 SQL Plan Baseline,之后优化器只能在其中选,防止统计信息或参数变化导致计划突变;是治"计划漂移"的根治手段。

  • #2670 如何在 Oracle 中使用 SQL Trace 和 TKPROF 工具进行 SQL 调优?
    深入 · 226 浏览 · 原题

    SQL Trace(10046 事件)跟踪会话执行的每个步骤,生成 trace 文件后用 tkprof 格式化,看 parse/execute/fetch 三阶段的耗时、逻辑读、物理读、行数。

  • #2673 Oracle 中的 Cost-Based Optimizer (CBO) 是如何工作的?
    进阶 · 121 浏览 · 原题

    CBO 用统计信息估算各候选计划的代价(IO + CPU + 网络),选代价最低者。统计信息失真是选错执行计划的第一大原因,其次才是参数与数据倾斜。

  • #2676 如何在 Oracle 中使用 Hints 提示优化 SQL 语句?
    深入 · 244 浏览 · 原题

    用 /*+ index(t idx) /、/+ leading(a) */ 等提示干预优化器。属于"最后手段":版本升级后可能失效,且会被 Baseline/Profile 覆盖,能不用就不用。

  • #2679 如何在 Oracle 中使用 Materialized View 来优化查询?
    深入 · 126 浏览 · 原题

    物化视图把查询结果物理存储,支持 on commit / on demand 刷新,fast refresh 需要物化视图日志;适合汇总报表、跨库数据同步、以及"以空间换时间"的重查询。

  • #2681 Oracle 中的 Bind Variables 如何优化性能?
    进阶 · 111 浏览 · 原题

    用绑定变量替代字面量:减少硬解析、共享游标、降低 shared pool latch 争用,还能防注入;但要注意绑定变量窥探(peeking)导致的计划偏差。

  • #2684 如何在 Oracle 中使用 SQL Profiles 和 SQL Plan Baselines 进行调优?
    深入 · 139 浏览 · 原题

    Profile 是"修正成本估算让优化器选对计划",Baseline 是"限定可选计划集合"。实践中先用 Profile 稳住,再用 Baseline 固化。

  • #2687 Oracle 中的 Table Partitioning 如何优化查询性能?
    进阶 · 137 浏览 · 原题

    按范围/列表/哈希/组合分区把大表拆成多个段:支持分区裁剪(pruning)、分区级维护(只重建/删除一个分区)、在线加分区,是海量数据表的标准做法。

  • #2690 如何在 Oracle 中使用自动优化(Automatic Tuning)特性?
    深入 · 162 浏览 · 原题

    Automatic Tuning 包含 SQL Tuning Advisor、SQL Access Advisor(索引/物化视图建议)、自动 SQL 调优集,可在维护窗口自动跑并给出建议,需人工确认后实施。


PostgreSQL

云原生与新建项目主流 · 共 32 题

体系结构与存储(7)

  • #2614 在 PostgreSQL 中,如何创建和管理表?
    进阶 · 1.6k 浏览 · 原题

    CREATE TABLE 支持约束、默认值、生成列、分区;ALTER TABLE 改结构(加列很快、改类型可能重写整表);DROP / TRUNCATE 清表;用 schema 做逻辑隔离,COMMENT ON 加注释便于治理。

  • #2628 请简要说明 PostgreSQL 的体系结构及其与 MySQL 的主要区别。
    进阶 · 1.1k 浏览 · 原题

    进程模型:postmaster 守护 + 每个连接一个 backend 进程;共享内存:shared_buffers、WAL buffer;存储:堆表 + 索引 + TOAST。与 MySQL 最大差别——没有可插拔存储引擎层,MVCC 用行版本而非 undo。

  • #2631 讨论 PostgreSQL 的 WAL(Write-Ahead Logging)机制及其作用。
    深入 · 692 浏览 · 原题

    修改先写 WAL 再写数据页,保证崩溃后可前滚恢复;同时支撑 PITR 与流复制。关键参数:wal_level、max_wal_size、checkpoint_timeout、full_page_writes。

  • #2634 请说明 PostgreSQL 的表分区(Partitioning)功能及其使用场景。
    深入 · 577 浏览 · 原题

    10 版起的声明式分区:RANGE / LIST / HASH,父表逻辑存在、子表真实存储;支持分区裁剪、分区级 VACUUM 与索引重建,避免单表过大导致的维护困难。

  • #2639 PostgreSQL 的多版本并发控制(MVCC)机制是如何工作的?
    深入 · 804 浏览 · 原题

    行版本存在表内,用 xmin/xmax 事务号标记可见性;UPDATE 会写新版本而非原地改,旧版本由 VACUUM 回收。所以"读不阻塞写、写不阻塞读",代价是表膨胀。

  • #2642 PostgreSQL 的 TOAST 机制是什么?它是如何处理大对象的?
    深入 · 386 浏览 · 原题

    超过约 2KB 的字段会被压缩后存到独立的 TOAST 表,主表只留指针,从而突破 8KB 页限制。存储策略有 PLAIN / EXTENDED / EXTERNAL / MAIN。

  • #2645 PostgreSQL 中的表继承(Table Inheritance)功能及其应用场景是什么?
    进阶 · 336 浏览 · 原题

    子表继承父表的列定义,查询父表默认包含所有子表(加 ONLY 可排除)。这是声明式分区出现之前的"手工分区"手段,现在多被 PARTITION BY 取代。

备份与恢复(7)

  • #2625 请描述在 PostgreSQL 中如何进行数据导入和导出,并给出具体命令。
    进阶 · 833 浏览 · 原题

    表级:COPY / \copy(文本或 CSV,最快);库级:pg_dump + pg_restore(逻辑);物理:pg_basebackup。COPY 读写的是服务端文件(需超级用户权限),\copy 走客户端,日常更常用。

  • #2693 如何在 PostgreSQL 中实现 WAL 归档(WAL Archiving)备份策略?
    进阶 · 457 浏览 · 原题

    archive_mode=on,把写满的 WAL 段归档到目录或对象存储(archive_command / pg_receivewal);配合基础备份即可实现任意时间点恢复。

  • #2696 PostgreSQL 的 pg_dump 和 pg_restore 工具如何进行逻辑备份和恢复?
    进阶 · 290 浏览 · 原题

    pg_dump 逻辑备份单库(可 -Fc 自定义格式、-j 并行),pg_restore 支持选择性恢复表/索引/数据;跨版本迁移友好,但库大时慢且占用大量 IO。

  • #2699 PostgreSQL 中的 PITR(Point-in-Time Recovery)恢复方法是什么?
    进阶 · 179 浏览 · 原题

    基础备份(pg_basebackup)+ 归档 WAL,通过 recovery_target_time / xid / lsn 恢复到指定点;需要 restore_command 或 recovery.signal 配置。

  • #2703 PostgreSQL 中的 pg_basebackup 工具如何进行物理备份?
    进阶 · 189 浏览 · 原题

    物理基础备份工具:-X stream 打包所需 WAL、-j 并行、-z 压缩、-R 直接生成备库配置;备份出来的目录可直接作为从库数据目录启动。

  • #2706 PostgreSQL 的 Barman(Backup and Recovery Manager)工具如何使用?
    进阶 · 180 浏览 · 原题

    Barman(Backup and Recovery Manager):企业级 PG 备份管理,支持全量/增量、WAL 归档、保留策略、异地/对象存储、以及恢复到任意时间点。

  • #2709 PostgreSQL 中的 Point-In-Time Recovery(PITR)与流复制(Streaming Replication)如何结合使用?
    进阶 · 167 浏览 · 原题

    从库持续接收 WAL 保持同步,同时全量归档 WAL。误操作时:把从库 promote/暂停在目标时间点,或在另一实例上做 PITR,避免影响生产库。

高可用与复制(5)

  • #2713 PostgreSQL 的 Streaming Replication 和 Logical Replication 有何区别?
    进阶 · 218 浏览 · 原题

    物理流复制按块复制整个集群,要求同大版本同架构,从库只读(11+ 支持逻辑读);逻辑复制基于发布/订阅,按表复制,可跨版本、可过滤、可双向。

  • #2716 请说明 PostgreSQL 的 Patroni 高可用性框架及其配置。
    深入 · 231 浏览 · 原题

    Patroni 基于 DCS(etcd/Consul/ZooKeeper)做选主与配置管理:节点抢 leader key,持有者为主库;失联则 key 过期、其他节点 promote。配合 HAProxy 做健康检查与流量切换。

  • #2719 PostgreSQL 中的 BDR(Bi-Directional Replication)如何实现双向复制?
    进阶 · 192 浏览 · 原题

    BDR(Bi-Directional Replication)实现多主双向复制:多节点可同时写入,内置冲突检测与处理策略(last update wins、自定义 resolver),适合多地域部署。

  • #2726 如何在 PostgreSQL 中使用 Patroni 实现高可用性?
    深入 · 253 浏览 · 原题

    每个节点跑 Patroni 实例,通过 etcd 抢 leader;主库故障时 key TTL 到期,从节点竞争上位并 promote;HAProxy 检测 /primary 接口自动把写流量切过去。

  • #2729 PostgreSQL 中的 repmgr 工具如何用于管理和监控复制集群?
    进阶 · 173 浏览 · 原题

    repmgr 是 PG 复制集群管理工具:负责搭建主从、监控状态、故障切换(repmgrd 守护进程)、旧主 rejoin。比 Patroni 轻量,但依赖 VIP 或外部路由切换。

性能诊断与调优(13)

  • #2620 在 PostgreSQL 中,如何设置和管理数据库索引?
    进阶 · 938 浏览 · 原题

    CREATE INDEX 默认 B-tree,另有 GIN/GiST/BRIN/Hash;CREATE INDEX CONCURRENTLY 可在线建索引不阻塞写入(会慢,且失败会留 invalid 索引);用 pg_stat_user_indexes 找未使用索引,REINDEX 修复膨胀。

  • #2650 PostgreSQL 中的 pg_stat_statements 扩展如何帮助进行性能分析?
    进阶 · 396 浏览 · 原题

    按 SQL 指纹聚合:调用次数、总耗时、平均耗时、逻辑读/物理读、返回行数。是 PG 慢查询分析的第一步,配合 pg_stat_statements_reset 做区间对比。

  • #2653 如何在 PostgreSQL 中使用 auto_explain 扩展进行查询性能分析?
    深入 · 368 浏览 · 原题

    自动把超过 log_min_duration_statement 的 SQL 执行计划写进日志(含采样率 sample_rate),无需手动 EXPLAIN,适合定位生产上偶发的慢查询。

  • #2656 PostgreSQL 中的 autovacuum 如何影响数据库性能?
    进阶 · 293 浏览 · 原题

    autovacuum 自动清理死元组并更新统计信息。繁忙表要单独调 autovacuum_vacuum_scale_factor / cost_limit,否则表与索引膨胀、查询变慢、甚至事务号回卷风险。

  • #2661 PostgreSQL 中的 pg_stat_activity 视图如何用于监控和调优?
    进阶 · 250 浏览 · 原题

    当前会话视图:看 state(active / idle / idle in transaction)、query、wait_event、query_start、backend_xid。定位长事务、锁等待、空闲事务占连接的第一入口。

  • #2664 PostgreSQL 中的 auto_explain 模块如何帮助进行查询性能分析?
    进阶 · 233 浏览 · 原题

    与 auto_explain 同源,回答时可补充:log_nested_statements 可记录函数内嵌套语句,sample_rate 控制采样比例,避免日志爆炸。

  • #2667 PostgreSQL 的 pgBadger 工具如何用于性能分析和调优?
    进阶 · 221 浏览 · 原题

    解析 PG 日志生成 HTML 报表:慢查询 Top、错误分布、连接数、锁等待、checkpoint 与 autovacuum 情况,适合周期性巡检与容量评估。

  • #2671 解释 PostgreSQL 中的 VACUUM 命令及其优化作用。
    进阶 · 239 浏览 · 原题

    VACUUM 回收死元组空间、更新可见性与统计信息,不锁表;VACUUM FULL 会重写整表并加排他锁,只在严重膨胀时用。配合 fillfactor 可减少 HOT 更新膨胀。

  • #2674 如何在 PostgreSQL 中使用 Index Only Scan 优化查询?
    深入 · 225 浏览 · 原题

    查询涉及的列全在索引里时只读索引,不回表;依赖 visibility map,若表长期未 VACUUM,可见性信息缺失会退化成普通 index scan。

  • #2677 解释 PostgreSQL 的查询计划(Query Plan)及如何读取它。
    深入 · 261 浏览 · 原题

    用 EXPLAIN (ANALYZE, BUFFERS) 看真实执行:节点自下而上读,关注 Seq Scan vs Index Scan、Nested Loop vs Hash Join、以及 rows 预估与 actual rows 的偏差(偏差大说明统计信息不准)。

  • #2682 PostgreSQL 中的 Common Table Expressions(CTEs)如何优化查询?
    进阶 · 185 浏览 · 原题

    WITH 子句把复杂查询拆成命名子查询,可读性好、可递归;12 版之前 CTE 是优化屏障(强制物化),12 版后默认可内联,必要时用 MATERIALIZED 强制物化。

  • #2685 PostgreSQL 中的并行查询(Parallel Query)如何提高查询效率?
    进阶 · 241 浏览 · 原题

    max_parallel_workers_per_gather 控制并行度,对大表扫描、聚合、JOIN 有效;小查询并行反而增加启动开销与 CPU 争用,OLTP 场景应压低。

  • #2688 PostgreSQL 中的自定义函数(User-Defined Functions)如何影响查询性能?
    进阶 · 225 浏览 · 原题

    PL/pgSQL 函数有每行调用开销且默认不内联,SQL 函数可被内联;在 WHERE 里对每行调用 UDF 会显著变慢,尽量改成集合操作或 JOIN。


SQL

5 个题库去重后 109 道,电商/网站场景题与基础题大量重合 · 共 109 题

基础查询(32)

  • #3101 编写 SQL,查询访问记录表中所有页面的页面 ID 和访问日期
    基础 · 6.6k 浏览 · 原题

  • #3102 编写 SQL,查询页面表中页面路径为 ‘/home’ 的页面名称
    基础 · 3.3k 浏览 · 原题

  • #3103 编写 SQL,查询访问记录表中用户IP为 ‘192.168.1.1’ 的所有记录
    基础 · 2.6k 浏览 · 原题

  • #3104 编写 SQL,查询用户表中性别为 ‘男’ 的所有用户的用户名
    基础 · 2.1k 浏览 · 原题

  • #3105 编写 SQL,查询页面表中所有页面的页面 ID,并按页面 ID 升序排序
    基础 · 1.9k 浏览 · 原题

  • #3106 编写 SQL,查询访问记录表中每个页面的总访问次数
    基础 · 1.7k 浏览 · 原题

  • #3107 编写 SQL,查询用户表中注册日期最早的 3 个用户的用户名和注册日期
    基础 · 1.7k 浏览 · 原题

  • #3108 编写 SQL,查询访问记录表中每个用户的总访问次数
    基础 · 1.5k 浏览 · 原题

  • #3109 编写 SQL,查询用户表中年龄在 25 岁及以下的所有用户的用户名和年龄
    基础 · 1.5k 浏览 · 原题

  • #3110 编写 SQL,查询用户表中每个性别的用户数量
    基础 · 1.4k 浏览 · 原题

  • #3111 编写 SQL,查询用户表中年龄在 25 岁及以下且性别为 ‘女’ 的用户的用户名
    基础 · 1.4k 浏览 · 原题

  • #3112 编写 SQL,查询用户表中注册日期在 2024 年 1 月 1 日之后的用户名和注册日期
    基础 · 1.3k 浏览 · 原题

  • #3113 编写 SQL,查询用户表中用户名包含 ‘张’ 字的所有用户
    基础 · 1.5k 浏览 · 原题

  • #3114 编写 SQL,查询所有用户中年龄最大的用户信息
    基础 · 1.3k 浏览 · 原题

  • #3115 编写 SQL,查询用户表中每个性别的平均年龄,并按性别分组
    基础 · 1.3k 浏览 · 原题

  • #3116 编写 SQL,查询用户表中,注册日期在 2024 年 1 月 1 日和 2024 年 6 月 30 日之间的所有用户
    基础 · 1.2k 浏览 · 原题

  • #3117 编写 SQL,查询每个页面的第一次访问日期
    基础 · 1.3k 浏览 · 原题

  • #3118 编写 SQL,查询访问记录表中,每个页面最近一次访问的日期
    基础 · 1.2k 浏览 · 原题

  • #3145 编写 SQL,查询所有客户的姓名和电话
    基础 · 4.5k 浏览 · 原题

  • #3146 编写 SQL,查询所有订单的总金额和订单日期
    基础 · 2.2k 浏览 · 原题

  • #3147 编写 SQL,统计共有多少客户
    基础 · 2.3k 浏览 · 原题

  • #3148 编写 SQL,查询总金额大于 100 的所有订单
    基础 · 1.9k 浏览 · 原题

  • #3149 编写 SQL,按创建时间升序查询所有客户
    基础 · 1.6k 浏览 · 原题

  • #3150 编写 SQL,查询订单总金额的平均值
    基础 · 1.6k 浏览 · 原题

  • #3151 编写 SQL,查询每个订单的总商品数量
    基础 · 1.5k 浏览 · 原题

  • #3152 编写 SQL,查询最早的订单日期
    基础 · 1.6k 浏览 · 原题

  • #3153 编写 SQL,查询创建时间在 2023 年 2 月份的所有客户
    基础 · 1.4k 浏览 · 原题

  • #3154 编写 SQL,查询价格最高的商品信息
    基础 · 1.5k 浏览 · 原题

  • #3155 编写 SQL,查询所有客户的姓名和创建时间,结果按照创建时间降序排序
    基础 · 1.4k 浏览 · 原题

  • #3156 编写 SQL,查询每个订单的详细商品信息,包括商品 ID、数量、价格和总金额
    进阶 · 2.0k 浏览 · 原题

  • #3157 编写 SQL,查询每个商品的销售总数量及其对应的订单总金额
    进阶 · 1.6k 浏览 · 原题

  • #3158 编写 SQL,查询所有客户的姓名,并将其姓名转换为大写
    基础 · 1.4k 浏览 · 原题

进阶查询(47)

  • #3100 编写 SQL,查询用户表中所有用户的用户名和年龄
    进阶 · 4.2k 浏览 · 原题

  • #3119 编写 SQL,查询访问记录表中每个页面的访问次数,按访问次数从高到低排序
    进阶 · 2.3k 浏览 · 原题

  • #3120 编写 SQL,查询每个用户访问的不同页面的总数量
    进阶 · 1.9k 浏览 · 原题

  • #3121 编写 SQL,查询在 2024 年 7 月 1 日访问过的所有用户的用户名(不能重复)
    进阶 · 1.5k 浏览 · 原题

  • #3122 编写 SQL,查询所有页面中访问次数最多的页面的页面名称
    进阶 · 1.3k 浏览 · 原题

  • #3123 编写 SQL,查询在 2024 年 7 月 1 日访问次数最多的页面的页面路径
    进阶 · 1.2k 浏览 · 原题

  • #3124 编写 SQL,查询每个用户最近一次访问的页面路径及访问日期
    进阶 · 1.0k 浏览 · 原题

  • #3125 编写 SQL,查询每个页面路径的独立访问用户数
    进阶 · 919 浏览 · 原题

  • #3126 编写 SQL,查询每个页面路径的访问次数和独立访问用户数,并按页面 ID 升序排序
    进阶 · 788 浏览 · 原题

  • #3127 编写 SQL,查询在 2024 年 7 月 1 日访问过 ‘/home’ 页面且年龄大于 25 岁的用户的用户名(去重)
    进阶 · 743 浏览 · 原题

  • #3128 编写 SQL,查询访问次数超过 2 次的所有用户的用户名和访问次数
    进阶 · 747 浏览 · 原题

  • #3129 编写 SQL,查询所有用户的用户名和注册日期,要求格式化注册日期为 ‘YYYY-MM’ 格式
    进阶 · 671 浏览 · 原题

  • #3130 编写 SQL,查询每个页面在 2024 年 7 月的总访问次数,并按访问次数降序排列
    进阶 · 645 浏览 · 原题

  • #3131 编写 SQL,查询访问记录表中访问次数最多的前两个页面路径
    进阶 · 595 浏览 · 原题

  • #3132 编写 SQL,查询每个用户名访问的不同页面的数量,要求该数量大于 1
    进阶 · 565 浏览 · 原题

  • #3133 编写 SQL,使用开窗函数查询每个页面的累计访问次数
    进阶 · 699 浏览 · 原题

  • #3134 编写 SQL,查询在 2024 年 7 月 1 日访问了 ‘/home’ 页面但没有访问 ‘/contact’ 页面的用户的用户名(去重)
    进阶 · 586 浏览 · 原题

  • #3135 编写 SQL,查询所有在 2024 年 7 月访问过网站的用户的用户名(去重)
    进阶 · 538 浏览 · 原题

  • #3136 编写 SQL,查询总访问次数大于 2 的每个页面的总访问次数
    进阶 · 523 浏览 · 原题

  • #3137 编写 SQL,查询每个用户名的平均访问时长,并且平均访问时长超过 100 秒的用户名
    进阶 · 542 浏览 · 原题

  • #3138 编写 SQL,查询在 2024 年 7 月 1 日访问过 ‘/product/123’ 页面的所有用户的用户 ID 和访问日期
    进阶 · 473 浏览 · 原题

  • #3139 编写 SQL,查询每个用户的访问记录,并增加一个序号列,按访问日期排序
    进阶 · 448 浏览 · 原题

  • #3140 编写 SQL,查询在 2024 年访问过网站的所有用户中,访问次数最多的前五名用户的用户名及其访问次数
    进阶 · 441 浏览 · 原题

  • #3141 编写 SQL,查询每个页面在每个月的总访问次数,并按页面 ID 和月份排序
    进阶 · 418 浏览 · 原题

  • #3142 编写 SQL,使用开窗函数查询每个用户最近一次访问的页面路径及其访问日期
    进阶 · 418 浏览 · 原题

  • #3143 编写 SQL,查询在 2024 年 7 月访问次数最多的 3 个页面的页面名称
    进阶 · 438 浏览 · 原题

  • #3144 编写 SQL,查询所有注册日期在 2024 年 6 月之后且访问过 ‘/contact’ 页面的用户的用户名
    进阶 · 416 浏览 · 原题

  • #3159 编写 SQL,统计每个客户的订单总金额
    进阶 · 1.2k 浏览 · 原题

  • #3160 编写 SQL,查询总金额大于 100 的订单及其对应客户的姓名
    进阶 · 845 浏览 · 原题

  • #3161 编写 SQL,查询订单数量最多的客户姓名和订单数量
    进阶 · 574 浏览 · 原题

  • #3162 编写 SQL,查询每个客户的订单总金额,并按总金额降序排序
    基础 · 623 浏览 · 原题

  • #3163 编写 SQL,查询在 2023 年 3 月份的所有订单及其对应客户的姓名
    进阶 · 553 浏览 · 原题

  • #3164 编写 SQL,查询所有订单的总商品数量和总金额,并按订单日期升序排序
    进阶 · 520 浏览 · 原题

  • #3165 编写 SQL,查询每个订单的总金额及其包含的商品总数量
    进阶 · 496 浏览 · 原题

  • #3166 编写 SQL,查询订单总金额最高的客户姓名和对应的订单总金额
    进阶 · 475 浏览 · 原题

  • #3167 编写 SQL,查询有订单记录的客户姓名及其最新的订单日期
    进阶 · 509 浏览 · 原题

  • #3168 编写 SQL,查询在 2023 年 1 月份下的所有订单及其对应的商品详细信息
    进阶 · 472 浏览 · 原题

  • #3169 编写 SQL,查询每个客户的订单总数量和总金额,并按总金额降序排序
    进阶 · 520 浏览 · 原题

  • #3170 编写 SQL,查询所有订单在每个客户订单中的累计总金额,并按订单日期升序排序
    深入 · 1.3k 浏览 · 原题

  • #3171 编写 SQL,查询每个客户的最新订单总金额及其在客户所有订单总金额中的比例
    深入 · 836 浏览 · 原题

  • #3172 编写 SQL,查询每个订单的总商品数量及其包含的商品列表(用逗号分隔)
    深入 · 748 浏览 · 原题

  • #3173 编写 SQL,查询每个订单的订单日期,并计算订单日期的年份和季度
    进阶 · 668 浏览 · 原题

  • #3174 编写 SQL,查询每个客户的姓名及其上一个订单的总金额
    深入 · 1.0k 浏览 · 原题

  • #3175 编写 SQL,查询订单总金额超过其客户所有订单平均金额的订单
    深入 · 906 浏览 · 原题

  • #3176 编写 SQL,查询订单数量超过 5 的每个客户的订单数量
    进阶 · 676 浏览 · 原题

  • #3177 编写 SQL,查询每个客户的姓名及其第一个订单的总金额
    进阶 · 563 浏览 · 原题

  • #3178 编写 SQL,查询至少有一个订单金额超过 200 的客户姓名
    进阶 · 989 浏览 · 原题

SQL 综合(30)

  • #13115 SQL 是什么?它有哪些分类(DDL、DML、DQL、DCL、TCL)?
    基础 · 727 浏览 · 原题

  • #13116 SQL 中的主键和外键是什么?它们有什么作用?
    基础 · 451 浏览 · 原题

  • #13117 SQL 中常用的数据类型有哪些?如何选择合适的数据类型?
    基础 · 319 浏览 · 原题

  • #13118 SQL 中 DELETE、TRUNCATE 和 DROP 有什么区别?
    基础 · 313 浏览 · 原题

  • #13119 SQL 中 WHERE 和 HAVING 有什么区别?什么时候使用它们?
    基础 · 362 浏览 · 原题

  • #13120 SQL 中如何去重?DISTINCT 和 GROUP BY 去重有什么区别?
    基础 · 308 浏览 · 原题

  • #13121 SQL 中 NULL 值如何处理?NULL 和空字符串有什么区别?
    基础 · 254 浏览 · 原题

  • #13122 SQL 的执行顺序是怎样的?为什么要了解执行顺序?
    基础 · 252 浏览 · 原题

  • #13123 SQL 中 INNER JOIN、LEFT JOIN、RIGHT JOIN 有什么区别?
    进阶 · 304 浏览 · 原题

  • #13124 SQL 中什么是自连接?在什么场景下使用?
    进阶 · 244 浏览 · 原题

  • #13125 SQL 中 JOIN 和子查询有什么区别?如何选择使用?
    进阶 · 252 浏览 · 原题

  • #13126 SQL 中如何实现笛卡尔积?它有什么用途和风险?
    基础 · 226 浏览 · 原题

  • #13127 SQL 中 UNION 和 UNION ALL 有什么区别?什么时候使用它们?
    基础 · 239 浏览 · 原题

  • #13128 SQL 中如何查询每个部门工资最高的员工?
    进阶 · 241 浏览 · 原题

  • #13129 SQL 中如何实现多表关联查询的性能优化?
    进阶 · 213 浏览 · 原题

  • #13130 SQL 中常用的聚合函数有哪些?它们的作用是什么?
    基础 · 207 浏览 · 原题

  • #13131 SQL 中 GROUP BY 的工作原理是什么?如何使用?
    进阶 · 194 浏览 · 原题

  • #13132 SQL 中的窗口函数是什么?和聚合函数有什么区别?
    进阶 · 208 浏览 · 原题

  • #13133 SQL 中 ROW_NUMBER()、RANK()、DENSE_RANK() 有什么区别?
    进阶 · 175 浏览 · 原题

  • #13134 SQL 中如何查询每个分组的 Top N 记录?
    进阶 · 175 浏览 · 原题

  • #13135 SQL 中如何实现累计求和?PARTITION BY 的作用是什么?
    进阶 · 155 浏览 · 原题

  • #13136 SQL 中什么是索引?索引有哪些类型?
    进阶 · 217 浏览 · 原题

  • #13137 SQL 中索引在什么情况下会失效?
    深入 · 548 浏览 · 原题

  • #13138 SQL 中什么是联合索引?最左前缀原则是什么?
    深入 · 191 浏览 · 原题

  • #13139 SQL 中如何使用 EXPLAIN 分析查询性能?
    进阶 · 189 浏览 · 原题

  • #13140 SQL 查询慢的原因有哪些?如何优化慢查询?
    深入 · 599 浏览 · 原题

  • #13141 SQL 中如何优化大数据量的分页查询?
    深入 · 194 浏览 · 原题

  • #13142 SQL 中覆盖索引是什么?它有什么优势?
    进阶 · 130 浏览 · 原题

  • #13143 SQL 中什么是事务?事务的 ACID 特性是什么?
    深入 · 280 浏览 · 原题

  • #13144 SQL 中如何避免 SQL 注入?有哪些防范措施?
    深入 · 245 浏览 · 原题


大数据与检索

数仓 / 检索 / OLAP,仅列清单 · 共 497 题

ClickHouse(49)

  • #7762 什么是 ClickHouse?它的主要应用场景是什么?
    基础 · 644 浏览 · 原题

  • #7763 ClickHouse 的存储引擎有哪些?常见的引擎是什么?
    基础 · 434 浏览 · 原题

  • #7764 在 ClickHouse 中,如何创建一张表?常见的表结构语法是什么?
    基础 · 345 浏览 · 原题

  • #7765 ClickHouse 中的 MergeTree 引擎是什么?它有哪些优势?
    基础 · 305 浏览 · 原题

  • #7766 ClickHouse 中,如何进行数据插入和批量插入?
    基础 · 290 浏览 · 原题

  • #7767 ClickHouse 中的分区和分桶机制是什么?如何实现?
    基础 · 261 浏览 · 原题

  • #7768 ClickHouse 如何进行数据压缩?常见的压缩算法有哪些?
    基础 · 210 浏览 · 原题

  • #7769 在 ClickHouse 中,如何执行简单的 SQL 查询操作?
    基础 · 264 浏览 · 原题

  • #7770 ClickHouse 的数据类型有哪些?如何选择合适的数据类型?
    基础 · 191 浏览 · 原题

  • #7771 ClickHouse 是如何支持列式存储的?列式存储的优势是什么?
    基础 · 263 浏览 · 原题

  • #7772 ClickHouse 中的物化视图是什么?它的应用场景是什么?
    进阶 · 218 浏览 · 原题

  • #7773 在 ClickHouse 中,如何配置 MergeTree 表的分区策略?
    进阶 · 175 浏览 · 原题

  • #7774 ClickHouse 是如何处理大规模数据查询的?有哪些查询优化手段?
    进阶 · 213 浏览 · 原题

  • #7775 在 ClickHouse 中,如何通过物化视图提高查询性能?
    进阶 · 164 浏览 · 原题

  • #7776 ClickHouse 中的分布式表如何工作?如何实现数据的水平扩展?
    进阶 · 159 浏览 · 原题

  • #7777 在 ClickHouse 中,如何使用 TTL 自动清理数据?
    进阶 · 173 浏览 · 原题

  • #7778 ClickHouse 的高可用集群架构是如何设计的?如何实现高可用?
    进阶 · 156 浏览 · 原题

  • #7779 在 ClickHouse 中,如何优化 SQL 查询的执行计划?
    进阶 · 180 浏览 · 原题

  • #7780 ClickHouse 是如何支持实时数据分析的?如何通过流式数据导入实现?
    进阶 · 156 浏览 · 原题

  • #7781 在 ClickHouse 中,如何通过 final 操作消除重复数据?
    进阶 · 169 浏览 · 原题

  • #7782 ClickHouse 如何支持数据分片和副本机制?如何通过分片提高查询性能?
    进阶 · 113 浏览 · 原题

  • #7783 在 ClickHouse 中,如何处理数据倾斜问题?有哪些常见的优化策略?
    进阶 · 134 浏览 · 原题

  • #7784 ClickHouse 中的全局字典是什么?如何应用?
    进阶 · 101 浏览 · 原题

  • #7785 ClickHouse 是如何通过多线程查询优化数据查询速度的?
    进阶 · 123 浏览 · 原题

  • #7786 在 ClickHouse 中,如何使用分布式表和集群并发查询优化性能?
    进阶 · 98 浏览 · 原题

  • #7787 ClickHouse 中的 Merge 操作是如何工作的?它如何影响查询性能?
    进阶 · 101 浏览 · 原题

  • #7788 ClickHouse 是如何处理数据复制和同步的?数据一致性如何保证?
    进阶 · 101 浏览 · 原题

  • #7789 在 ClickHouse 中,如何通过物化视图和聚合函数加速数据分析?
    进阶 · 105 浏览 · 原题

  • #7790 ClickHouse 是如何实现并发写入的?如何优化并发写入性能?
    进阶 · 128 浏览 · 原题

  • #7791 在 ClickHouse 中,如何对查询性能进行监控和分析?
    进阶 · 98 浏览 · 原题

  • #7792 ClickHouse 如何与其他数据源(如 Kafka、MySQL)集成?
    进阶 · 160 浏览 · 原题

  • #7793 ClickHouse 的 MergeTree 引擎如何进行数据的分段管理?
    进阶 · 91 浏览 · 原题

  • #7794 ClickHouse 中的 ReplicatedMergeTree 是如何保证高可用和一致性的?
    进阶 · 106 浏览 · 原题

  • #7795 在 ClickHouse 中,如何通过分区和合并策略优化查询性能?
    进阶 · 80 浏览 · 原题

  • #7796 ClickHouse 如何处理列存储中的压缩和去重问题?
    深入 · 110 浏览 · 原题

  • #7797 ClickHouse 的分布式查询引擎是如何工作的?如何处理跨节点查询?
    深入 · 94 浏览 · 原题

  • #7798 在 ClickHouse 中,如何通过预聚合表和物化视图提高查询性能?
    深入 · 95 浏览 · 原题

  • #7799 ClickHouse 如何通过并行查询和分布式查询框架优化大数据查询?
    深入 · 94 浏览 · 原题

  • #7800 在 ClickHouse 中,如何配置分布式表的副本和分片机制?
    深入 · 81 浏览 · 原题

  • #7801 ClickHouse 是如何通过存储引擎和查询优化器处理高并发查询的?
    深入 · 81 浏览 · 原题

  • #7802 在 ClickHouse 中,如何通过合并机制减少小文件问题?
    深入 · 78 浏览 · 原题

  • #7803 ClickHouse 如何处理分布式查询中的故障恢复和一致性保证?
    深入 · 85 浏览 · 原题

  • #7804 ClickHouse 中的分布式查询优化是如何实现的?如何提高查询效率?
    深入 · 89 浏览 · 原题

  • #7805 ClickHouse 的列式存储格式是如何设计的?如何影响数据读取性能?
    深入 · 96 浏览 · 原题

  • #7806 在 ClickHouse 中,如何处理海量数据的分区、排序和合并策略?
    深入 · 102 浏览 · 原题

  • #7807 ClickHouse 如何处理跨数据中心的数据复制和同步问题?
    深入 · 75 浏览 · 原题

  • #7808 ClickHouse 的存储引擎是如何支持高效查询的?如何优化大规模数据存储?
    深入 · 86 浏览 · 原题

  • #7809 在 ClickHouse 中,如何优化全局字典的性能以提高查询效率?
    深入 · 86 浏览 · 原题

  • #7810 ClickHouse 是如何通过异步合并和多线程技术提升性能的?
    深入 · 122 浏览 · 原题

Elasticsearch(177)

  • #194 什么是 Elasticsearch?Elasticsearch 和 MySQL 分别有哪些应用场景和优缺点?
    进阶 · 3.0k 浏览 · 原题

  • #195 Elasticsearch 为什么能实现更灵活的查询?
    进阶 · 2.2k 浏览 · 原题

  • #5714 什么是 Elasticsearch?它有哪些优势和应用场景?
    基础 · 6.1k 浏览 · 原题

  • #5715 Elasticsearch 支持哪些类型的数据查询搜索方式?
    基础 · 4.0k 浏览 · 原题

  • #5716 Elasticsearch 的 REST API 有什么优点?
    基础 · 3.0k 浏览 · 原题

  • #5717 安装 Elasticsearch 时,系统需要依赖哪些组件?
    基础 · 2.9k 浏览 · 原题

  • #5718 如何操作 Elasticsearch 进行文档的更新和删除?
    基础 · 2.7k 浏览 · 原题

  • #5719 如何使用 Kibana 对 Elasticsearch 的数据进行可视化和操作?
    基础 · 2.5k 浏览 · 原题

  • #5720 Elasticsearch 中 cat API 有什么作用?
    基础 · 1.6k 浏览 · 原题

  • #5721 什么是 Elasticsearch 的副本?创建副本有什么好处?
    基础 · 1.9k 浏览 · 原题

  • #5722 什么是 Elasticsearch 的分片?它在集群中的作用是什么?
    基础 · 2.0k 浏览 · 原题

  • #5723 Elasticsearch 中的 keyword 和 text 字段有什么区别?
    基础 · 1.9k 浏览 · 原题

  • #5724 Elasticsearch 支持哪些数据类型,如何选择合适的数据类型?
    基础 · 2.1k 浏览 · 原题

  • #5725 如何启动并配置 Elasticsearch 服务器?
    基础 · 1.5k 浏览 · 原题

  • #5726 什么是 Elasticsearch Cluster?它有什么作用?
    基础 · 1.3k 浏览 · 原题

  • #5727 什么是 Elasticsearch 的 Document 文档?如何存储和检索文档?
    基础 · 1.6k 浏览 · 原题

  • #5728 什么是 Elasticsearch 的 Index 索引?如何管理索引?
    基础 · 1.8k 浏览 · 原题

  • #5729 如何在 Elasticsearch 中列出集群中的所有索引?
    基础 · 1.1k 浏览 · 原题

  • #5730 如何使用 ID 检索 Elasticsearch 中的文档?
    基础 · 1.2k 浏览 · 原题

  • #5731 ElasticSearch 精准匹配和全文检索匹配有什么区别?
    基础 · 1.3k 浏览 · 原题

  • #5732 什么是 Elasticsearch 的 Node 节点?它有哪些角色和功能?
    基础 · 992 浏览 · 原题

  • #5733 Elasticsearch 中的 Mapping 有哪些常见的数据类型?
    基础 · 1.2k 浏览 · 原题

  • #5734 什么是 Lucene?它和 Elasticsearch 有什么关系?
    基础 · 1.3k 浏览 · 原题

  • #5735 Elasticsearch 的基本概念有哪些?请举例说明
    基础 · 1.3k 浏览 · 原题

  • #5736 Elasticsearch 支持哪些配置管理工具?如何使用这些工具?
    基础 · 817 浏览 · 原题

  • #5737 Elasticsearch 中不同节点类型(如主节点和数据节点等)的区别是什么?
    基础 · 819 浏览 · 原题

  • #5738 Elasticsearch 支持哪些语言的客户端?如何选择合适的客户端?
    基础 · 717 浏览 · 原题

  • #5739 如何在 Elasticsearch 中实现全文搜索的分页功能?
    基础 · 1.1k 浏览 · 原题

  • #5740 Elasticsearch 中的 Search Suggestion 是什么?有哪些类型的搜索建议?
    基础 · 734 浏览 · 原题

  • #5741 Elasticsearch 中的 Search Template 功能是什么?如何使用它?
    基础 · 801 浏览 · 原题

  • #5742 如何使用 Elasticsearch 实现高亮显示搜索结果?
    基础 · 1.1k 浏览 · 原题

  • #5743 如何在 Elasticsearch 中创建只读索引?
    基础 · 1.0k 浏览 · 原题

  • #5744 Elasticsearch 提供了哪些核心 API?请举例说明每个 API 的功能
    基础 · 900 浏览 · 原题

  • #5745 什么是 Elasticsearch 的 Bulk API?它有什么作用?
    基础 · 785 浏览 · 原题

  • #5746 如何使用 Elasticsearch 的 _analyze API 来调试分析器?
    基础 · 692 浏览 · 原题

  • #5747 Elasticsearch 支持哪些排序类型?请举例说明
    基础 · 1.0k 浏览 · 原题

  • #5748 在 Elasticsearch 中,如何使用 boost 参数提高某个字段的相关性得分?
    基础 · 816 浏览 · 原题

  • #5749 什么是 Elasticsearch 的 explain API?它有什么作用?
    基础 · 1.3k 浏览 · 原题

  • #5750 Elasticsearch 中的 min_score 参数的作用是什么?如何使用它来过滤低相关性的结果?
    基础 · 844 浏览 · 原题

  • #5751 什么是 Elasticsearch 中的 match_phrase 查询?match_phrase 查询如何处理评分?
    基础 · 727 浏览 · 原题

  • #5752 如何在高并发场景下保证 Elasticsearch 的读写一致性?
    进阶 · 1.7k 浏览 · 原题

  • #5753 如何利用 Elasticsearch 实现拼写纠错功能?
    进阶 · 678 浏览 · 原题

  • #5754 如何使用 Elasticsearch 中的 Elastic Reporting 来生成报告?
    进阶 · 536 浏览 · 原题

  • #5755 部署 Elasticsearch 时,如何优化 Linux 系统的设置?
    进阶 · 577 浏览 · 原题

  • #5756 如何在 Elasticsearch 集群中添加和创建新索引?详细过程是什么?
    进阶 · 595 浏览 · 原题

  • #5757 Elasticsearch 索引文档的具体流程是怎样的?
    进阶 · 816 浏览 · 原题

  • #5758 如何对 Elasticsearch 中的数据进行预热操作?
    进阶 · 652 浏览 · 原题

  • #5759 什么是 Elasticsearch 的 Tokenizer?如何使用它?
    进阶 · 542 浏览 · 原题

  • #5760 Elasticsearch 数据写入的工作原理是什么?要经历哪些流程?
    进阶 · 786 浏览 · 原题

  • #5761 Elasticsearch 中是否可以更改主分片的数量?原因是什么?
    进阶 · 546 浏览 · 原题

  • #5762 如何监控 Elasticsearch 集群的运行状态和性能?
    进阶 · 506 浏览 · 原题

  • #5763 客户端与 Elasticsearch 集群通信时,如何选择合适的节点来执行请求?
    进阶 · 452 浏览 · 原题

  • #5764 Elasticsearch 中倒排索引的实现原理是什么?
    进阶 · 1.6k 浏览 · 原题

  • #5765 Elasticsearch 如何处理一次数据搜索请求?要经历哪些流程?
    进阶 · 641 浏览 · 原题

  • #5766 什么是全文检索?Elasticsearch 的全文检索是如何实现的?
    进阶 · 797 浏览 · 原题

  • #5767 如何利用 Beats 完成 Elasticsearch 的数据采集和传输?
    进阶 · 404 浏览 · 原题

  • #5768 当前稳定版本的 Elasticsearch 具备哪些核心特性和改进?
    进阶 · 351 浏览 · 原题

  • #5769 Elasticsearch 中 Explore API 的功能和应用场景是什么?
    进阶 · 307 浏览 · 原题

  • #5770 Elasticsearch 的 Master 节点与候选 Master 节点有什么区别?
    进阶 · 412 浏览 · 原题

  • #5771 什么是 Elasticsearch 的 X-Pack?它的主要功能和命令是什么?
    进阶 · 362 浏览 · 原题

  • #5772 如何操作 Elasticsearch 实现高效的全文检索功能?
    进阶 · 500 浏览 · 原题

  • #5773 Elasticsearch 集群中,节点如何分配和管理分片?
    进阶 · 452 浏览 · 原题

  • #5774 Elasticsearch 与 Solr 有哪些区别?
    进阶 · 408 浏览 · 原题

  • #5775 什么是正向索引?Elasticsearch 的倒排索引和正向索引有什么区别?
    进阶 · 775 浏览 · 原题

  • #5776 Elasticsearch 的数据模型有哪些核心概念?
    进阶 · 525 浏览 · 原题

  • #5777 Elasticsearch 如何确保数据的一致性和可靠性?
    进阶 · 800 浏览 · 原题

  • #5778 Elasticsearch 的中文分词机制是如何实现的?
    进阶 · 725 浏览 · 原题

  • #5779 ElasticSearch 有哪些分片策略?如何设定分片数量和副本数量?
    进阶 · 619 浏览 · 原题

  • #5780 Elasticsearch 和关系型数据库有哪些区别?比如数据存储和查询等方面
    进阶 · 406 浏览 · 原题

  • #5781 什么是 Elasticsearch 的 Mapping 映射?如何定义映射?
    进阶 · 479 浏览 · 原题

  • #5782 什么是 Elasticsearch 的 Analyzer 分析器?如何定义分析器?
    进阶 · 400 浏览 · 原题

  • #5783 什么是 Elasticsearch 中的相关性得分?有哪些影响因素?
    进阶 · 375 浏览 · 原题

  • #5784 Elasticsearch 中的 Token Filter 是如何工作的?
    进阶 · 346 浏览 · 原题

  • #5785 Elasticsearch 提供了哪些内置的分析器?每个分析器的特点是什么?
    进阶 · 386 浏览 · 原题

  • #5786 Elasticsearch 中,文档的设计原则和最佳实践是什么?
    进阶 · 377 浏览 · 原题

  • #5787 Elasticsearch 的 Term、Match 和 Keyword 检索类型有什么区别?
    进阶 · 495 浏览 · 原题

  • #5788 什么是字典树?Elasticsearch 是如何利用字典树的?
    进阶 · 492 浏览 · 原题

  • #5789 什么是 Elasticsearch 中的倒排索引?它有什么作用?
    进阶 · 1.1k 浏览 · 原题

  • #5790 如何让 Elasticsearch 和数据库(比如 MySQL)的数据保持同步?
    进阶 · 1.4k 浏览 · 原题

  • #5791 Elasticsearch 中 Term Dictionary 词典是如何实现和管理的?
    进阶 · 361 浏览 · 原题

  • #5792 如何利用 Elasticsearch 实现高性能的电商搜索系统?
    进阶 · 673 浏览 · 原题

  • #5793 Elasticsearch 分析器的组成部分有哪些?作用分别是什么?
    进阶 · 397 浏览 · 原题

  • #5794 如何优化 Elasticsearch 索引阶段的性能?
    进阶 · 438 浏览 · 原题

  • #5795 Elasticsearch 中分词功能的实现原理是什么?
    进阶 · 653 浏览 · 原题

  • #5796 如何优化 Elasticsearch 的查询性能以减少查询延迟?
    进阶 · 418 浏览 · 原题

  • #5797 什么是 NRT 近实时搜索?其在 Elasticsearch 中的应用场景是什么?
    进阶 · 541 浏览 · 原题

  • #5798 如何优化和提升 Elasticsearch 的近实时搜索性能?
    进阶 · 395 浏览 · 原题

  • #5799 如何在 Elasticsearch 的索引设计阶段进行调优?
    进阶 · 386 浏览 · 原题

  • #5800 Elasticsearch 中的分析器具体是如何工作的?如何处理和解析数据?
    进阶 · 399 浏览 · 原题

  • #5801 Elasticsearch 的倒排索引与 MySQL 的正排索引有什么区别?
    进阶 · 664 浏览 · 原题

  • #5802 Elasticsearch 如何根据词汇找到对应的倒排索引?经历哪些步骤?
    进阶 · 405 浏览 · 原题

  • #5803 Elasticsearch 中倒排索引的结构具体是怎样的?
    进阶 · 737 浏览 · 原题

  • #5804 Elasticsearch 中 Ingest 节点有什么作用?其工作原理是什么?
    进阶 · 284 浏览 · 原题

  • #5805 如何通过 Spring Data Elasticsearch 实现复杂的查询操作?
    进阶 · 354 浏览 · 原题

  • #5806 如何在 Spring Boot 项目中集成 Elasticsearch 并实现搜索功能?
    进阶 · 504 浏览 · 原题

  • #5807 Elasticsearch 在分布式环境下的数据分布是如何实现的?
    进阶 · 438 浏览 · 原题

  • #5808 Elasticsearch 中的 Nested 类型字段如何使用,有哪些适用场景?
    进阶 · 297 浏览 · 原题

  • #5809 如何在 Elasticsearch 中进行权限管理和认证?
    进阶 · 322 浏览 · 原题

  • #5810 Elasticsearch 中的查询缓存和结果缓存是如何工作的?如何优化缓存?
    进阶 · 363 浏览 · 原题

  • #5811 如何利用 Elasticsearch 实现实时日志分析系统?
    进阶 · 488 浏览 · 原题

  • #5812 Elasticsearch 中的 Pipeline Aggregation 如何使用?有哪些典型应用场景?
    进阶 · 263 浏览 · 原题

  • #5813 如何在 Elasticsearch 中实现数据的自动化清理?
    进阶 · 310 浏览 · 原题

  • #5814 如何通过 Elasticsearch 实现推荐系统?
    进阶 · 696 浏览 · 原题

  • #5815 Elasticsearch 中的 Shard Allocation Awareness 是如何工作的?
    进阶 · 291 浏览 · 原题

  • #5816 如何在 Elasticsearch 中实现 Auto-scaling 自动分片缩放?
    进阶 · 267 浏览 · 原题

  • #5817 Elasticsearch 如何处理大量数据的删除操作?如何防止性能下降?
    进阶 · 393 浏览 · 原题

  • #5818 如何通过 Elasticsearch 的 Watcher 来实现基于条件触发的报警系统?
    进阶 · 246 浏览 · 原题

  • #5819 如何通过 Elasticsearch 的 Snapshot 功能进行数据备份和恢复?
    进阶 · 262 浏览 · 原题

  • #5820 如何在 Elasticsearch 中处理多租户场景?
    进阶 · 404 浏览 · 原题

  • #5821 Elasticsearch 中的 Reindex API 是如何工作的?有哪些应用场景?
    进阶 · 246 浏览 · 原题

  • #5822 如何利用 Elasticsearch 实现自动补全功能?
    进阶 · 640 浏览 · 原题

  • #5823 如何使用 Elasticsearch 的 Scripted Fields 实现动态字段计算?
    进阶 · 205 浏览 · 原题

  • #5824 如何通过 Elasticsearch 实现复杂的时间序列数据处理?
    进阶 · 269 浏览 · 原题

  • #5825 如何实现 Elasticsearch 中的数据迁移与升级?
    进阶 · 350 浏览 · 原题

  • #5826 如何利用 Elasticsearch 实现基于相似度的文档搜索?
    进阶 · 338 浏览 · 原题

  • #5827 如何使用 ILM 管理 Elasticsearch 索引的生命周期?
    进阶 · 257 浏览 · 原题

  • #5828 如何使用 Elasticsearch 的 EQL 进行事件查询?
    进阶 · 276 浏览 · 原题

  • #5829 Elasticsearch 中的 Frozen Index 是什么?怎么使用它?
    进阶 · 247 浏览 · 原题

  • #5830 如何在 Elasticsearch 中处理和存储结构化与非结构化数据?
    进阶 · 272 浏览 · 原题

  • #5831 如何使用 Elasticsearch 实现分布式锁?
    进阶 · 752 浏览 · 原题

  • #5832 如何通过 Elasticsearch 实现复杂的查询过滤条件?
    进阶 · 386 浏览 · 原题

  • #5833 Elasticsearch 中的 Pipeline Aggregation 如何优化和调优?
    进阶 · 243 浏览 · 原题

  • #5834 如何利用 Elasticsearch 实现日志的关联查询?
    进阶 · 408 浏览 · 原题

  • #5835 如何在 Elasticsearch 中处理大规模数据的去重操作?
    进阶 · 368 浏览 · 原题

  • #5836 如何通过 Elasticsearch 实现图数据的存储与查询?
    进阶 · 285 浏览 · 原题

  • #5837 如何在 Elasticsearch 中实现全文检索与结构化数据查询的结合?
    进阶 · 340 浏览 · 原题

  • #5838 如何利用 Elasticsearch 实现数据的逐步滚动更新?
    进阶 · 367 浏览 · 原题

  • #5839 Elasticsearch 中的 Search Guard 和 X-Pack Security 有什么区别?
    进阶 · 244 浏览 · 原题

  • #5840 如何使用 Elasticsearch 实现多语言支持的全文搜索?
    进阶 · 287 浏览 · 原题

  • #5841 什么是 Elasticsearch 的深分页问题?它有什么影响?又该如何解决?
    进阶 · 1.6k 浏览 · 原题

  • #5842 什么是 Elasticsearch 中的 River?为什么现在不推荐使用 River?
    进阶 · 359 浏览 · 原题

  • #5843 在使用 Elasticsearch 的 Bulk API 进行大规模数据导入时,如何优化性能?
    进阶 · 375 浏览 · 原题

  • #5844 Elasticsearch 的 Bulk API 中常见的错误处理机制是什么?如何处理部分失败的请求?
    进阶 · 288 浏览 · 原题

  • #5845 Elasticsearch 的评分算法是如何工作的?它基于哪些因素计算相关性得分?
    进阶 · 319 浏览 · 原题

  • #5846 什么是 Elasticsearch 中的 BM25 算法?与传统的 TF-IDF 算法相比,它有哪些改进?
    进阶 · 441 浏览 · 原题

  • #5847 Elasticsearch 中的评分公式是什么?请解释公式各部分的含义
    进阶 · 304 浏览 · 原题

  • #5848 如何在 Elasticsearch 查询中自定义评分规则?
    进阶 · 292 浏览 · 原题

  • #5849 如何在 Elasticsearch 中结合多字段的相关性得分?
    进阶 · 312 浏览 · 原题

  • #5850 在实际项目中,如何优化 Elasticsearch 的评分算法以提高搜索结果的准确性?
    进阶 · 432 浏览 · 原题

  • #5851 什么是 Elasticsearch 的 dis_max 查询?它如何影响文档的评分?
    进阶 · 289 浏览 · 原题

  • #5852 如何在 Elasticsearch 中通过脚本来调整评分逻辑?
    进阶 · 274 浏览 · 原题

  • #5853 使用 Elasticsearch 进行全文检索时,如何确保热门文档不会因为高 term frequency 而获得过高的相关性得分?
    进阶 · 514 浏览 · 原题

  • #5854 如何在 Elasticsearch 中使用 decay function 来对评分进行时间衰减处理?
    进阶 · 308 浏览 · 原题

  • #5855 Elasticsearch 中的 script_score 查询如何工作?在什么情况下会使用到它?
    进阶 · 285 浏览 · 原题

  • #5856 如何使用 Elasticsearch 的 rescore API 来重新排序已经返回的搜索结果?
    进阶 · 267 浏览 · 原题

  • #5857 Elasticsearch 中的 tie_breaker 参数在相关性评分中起什么作用?
    进阶 · 253 浏览 · 原题

  • #5858 Elasticsearch 中的 coord 和 queryNorm 参数在评分中的作用是什么?
    进阶 · 285 浏览 · 原题

  • #5859 如何处理 Elasticsearch 中评分结果的偏差问题?例如文档过多导致评分失真
    进阶 · 519 浏览 · 原题

  • #5860 在 Elasticsearch 中,如何通过 field_value_factor 调整评分?
    进阶 · 334 浏览 · 原题

  • #5861 Elasticsearch 的 bool 查询如何组合多个查询条件来影响评分?
    进阶 · 453 浏览 · 原题

  • #5862 如何优化 Elasticsearch 的评分算法以避免因高频词语导致的评分偏差?
    进阶 · 344 浏览 · 原题

  • #5863 如何在 Elasticsearch 中结合地理位置相关的评分?比如基于距离的评分
    进阶 · 345 浏览 · 原题

  • #5864 如何利用 Elasticsearch 中 BM25 算法的关键因素(比如 TF、IDF、Field Norm)优化文档的评分?
    进阶 · 437 浏览 · 原题

  • #5865 Elasticsearch 的 RestHighLevelClient 与 RestClient 有什么区别?如何选择使用?
    进阶 · 551 浏览 · 原题

  • #5866 使用 Elasticsearch 的客户端时,如何实现连接池配置和优化?
    进阶 · 562 浏览 · 原题

  • #5867 如何通过 Spring Data Elasticsearch 简化与 Elasticsearch 的集成?
    进阶 · 481 浏览 · 原题

  • #5868 在使用 Elasticsearch 客户端时,如何处理网络连接的错误和异常?
    进阶 · 391 浏览 · 原题

  • #5869 Elasticsearch 底层如何执行文档的更新和删除操作?详细流程是什么?
    深入 · 746 浏览 · 原题

  • #5870 Elasticsearch 集群如何实现 Master 主节点的选举?
    深入 · 684 浏览 · 原题

  • #5871 如何优化 Elasticsearch 的 GC 来提升整体性能?
    深入 · 742 浏览 · 原题

  • #5872 如何优化 Elasticsearch 的写入性能以应对大数据量?
    深入 · 812 浏览 · 原题

  • #5873 Elasticsearch 集群什么情况下会出现脑裂?如何解决脑裂?
    深入 · 899 浏览 · 原题

  • #5874 如何对 Elasticsearch 的 JVM 进行调优以提升性能?
    深入 · 914 浏览 · 原题

  • #5875 Elasticsearch 底层是如何实现数据存储的?比如数据的存储流程和管理机制
    深入 · 827 浏览 · 原题

  • #5876 如何解决 Elasticsearch 集群中的双 Master 问题?
    深入 · 840 浏览 · 原题

  • #5877 Elasticsearch 集群架构有哪些调优策略?
    深入 · 880 浏览 · 原题

  • #5878 如何在 Lucene 中实现倒排索引?
    深入 · 1.3k 浏览 · 原题

  • #5879 什么是 Elasticsearch 的 Posting List 倒排列表?
    深入 · 763 浏览 · 原题

  • #5880 如何利用 Elasticsearch 实现大数据量(上亿量级)的聚合查询?
    深入 · 1.3k 浏览 · 原题

  • #5881 什么是倒排表的 FOR 和 RBM 压缩算法?工作原理分别是什么?
    深入 · 922 浏览 · 原题

  • #5882 如何在确保数据一致性的前提下更新 Elasticsearch 的倒排索引?
    深入 · 1.1k 浏览 · 原题

  • #5883 什么是 FST?在 Elasticsearch 中有哪些应用场景?
    深入 · 1.9k 浏览 · 原题

  • #5884 Elasticsearch 中的 Fielddata 是什么?如何优化其性能?
    深入 · 1.2k 浏览 · 原题

  • #5885 如何实现 Elasticsearch 集群的滚动升级?
    深入 · 1.1k 浏览 · 原题

  • #5886 如何使用 Elasticsearch 实现机器学习模型的推理?
    深入 · 965 浏览 · 原题

  • #5887 如何通过 Elasticsearch 实现分布式事务?
    深入 · 3.6k 浏览 · 原题

  • #5888 如何在 Elasticsearch 中设计和实现数据的多层次缓存机制?
    深入 · 5.0k 浏览 · 原题

HBase(72)

  • #6689 HBase 是什么?它的主要应用场景是什么?
    基础 · 464 浏览 · 原题

  • #6690 HBase 的数据模型是什么?包括哪些关键的概念?
    基础 · 265 浏览 · 原题

  • #6691 在 HBase 中,Row Key 是什么?它在数据存储中的作用是什么?
    基础 · 236 浏览 · 原题

  • #6692 HBase 的表是如何组织的?一个表的基本结构是什么?
    基础 · 163 浏览 · 原题

  • #6693 HBase 中的列族是什么?它的作用是什么?
    基础 · 154 浏览 · 原题

  • #6694 在 HBase 中,如何创建和删除表?有哪些常用的命令?
    基础 · 159 浏览 · 原题

  • #6695 HBase 中的数据是如何存储的?它与传统关系型数据库有何不同?
    基础 · 151 浏览 · 原题

  • #6696 HBase 中的数据是如何通过行键进行检索的?
    基础 · 133 浏览 · 原题

  • #6697 HBase 如何处理大规模数据的分布式存储?它的分区机制是什么?
    基础 · 131 浏览 · 原题

  • #6698 HBase 的 Region 是什么?它的作用是什么?
    基础 · 131 浏览 · 原题

  • #6699 在 HBase 中,如何通过 Java API 进行数据的增删改查操作?
    基础 · 116 浏览 · 原题

  • #6700 HBase 中的扫描操作是什么?它与 Get 操作有什么区别?
    基础 · 99 浏览 · 原题

  • #6701 在 HBase 中,数据是如何通过列进行存储的?列的灵活性有什么优势?
    基础 · 98 浏览 · 原题

  • #6702 HBase 中的 WAL(Write-Ahead Log)是什么?它在数据持久化中的作用是什么?
    基础 · 105 浏览 · 原题

  • #6703 HBase 的架构包括哪些组件?各自的作用是什么?
    基础 · 122 浏览 · 原题

  • #6704 HBase 是如何与 HDFS 集成的?两者的关系是什么?
    基础 · 104 浏览 · 原题

  • #6705 HBase 的版本管理机制是如何实现的?如何处理数据的多版本?
    进阶 · 97 浏览 · 原题

  • #6706 HBase 中的 RegionServer 是什么?它的作用是什么?
    进阶 · 90 浏览 · 原题

  • #6707 HBase 如何处理数据的高并发读写?有哪些优化机制?
    进阶 · 122 浏览 · 原题

  • #6708 在 HBase 中,如何通过 TTL 控制数据的生命周期?
    进阶 · 81 浏览 · 原题

  • #6709 HBase 中的预分区是什么?它在性能优化中起到什么作用?
    进阶 · 77 浏览 · 原题

  • #6710 HBase 中的 Compaction 是什么?它在数据管理中的作用是什么?
    进阶 · 66 浏览 · 原题

  • #6711 在 HBase 中,如何设计合理的 Row Key 来优化查询性能?
    进阶 · 75 浏览 · 原题

  • #6712 HBase 的列存储模型与传统数据库的行存储相比有什么优势?
    进阶 · 68 浏览 · 原题

  • #6713 在 HBase 中,如何通过 Scan 优化大规模数据的查询?
    进阶 · 69 浏览 · 原题

  • #6714 HBase 是如何处理故障恢复的?有哪些机制保证数据不丢失?
    进阶 · 58 浏览 · 原题

  • #6715 HBase 的一致性模型是如何设计的?如何保证数据的强一致性?
    进阶 · 66 浏览 · 原题

  • #6716 在 HBase 中,如何通过批量操作提高写入性能?
    进阶 · 59 浏览 · 原题

  • #6717 HBase 的压缩机制是如何工作的?如何选择合适的压缩算法?
    进阶 · 53 浏览 · 原题

  • #6718 HBase 中的 Bloom Filter 是什么?它如何帮助加速数据查询?
    进阶 · 64 浏览 · 原题

  • #6719 HBase 的 Region 是如何进行分裂和合并的?这些操作对性能有什么影响?
    进阶 · 62 浏览 · 原题

  • #6720 HBase 中的 MemStore 是什么?它的作用是什么?
    进阶 · 51 浏览 · 原题

  • #6721 HBase 的行键设计对性能有哪些影响?如何优化行键设计?
    进阶 · 57 浏览 · 原题

  • #6722 HBase 的客户端缓存是如何工作的?它如何提高数据访问性能?
    进阶 · 44 浏览 · 原题

  • #6723 HBase 是如何实现水平扩展的?有哪些机制支持集群扩展?
    进阶 · 50 浏览 · 原题

  • #6724 HBase 中的 ACID 特性是如何实现的?它与传统关系型数据库的事务处理有何不同?
    进阶 · 65 浏览 · 原题

  • #6725 HBase 如何与 MapReduce 集成?如何通过 MapReduce 处理 HBase 中的数据?
    进阶 · 63 浏览 · 原题

  • #6726 HBase 的 HFile 是什么?它在数据存储中的作用是什么?
    进阶 · 61 浏览 · 原题

  • #6727 在 HBase 中,如何处理数据倾斜问题?有哪些常见的优化策略?
    进阶 · 62 浏览 · 原题

  • #6728 HBase 中的数据压缩如何工作?有哪些常见的压缩格式?
    进阶 · 46 浏览 · 原题

  • #6729 HBase 的主从架构是如何设计的?如何实现高可用性?
    进阶 · 52 浏览 · 原题

  • #6730 HBase 的负载均衡机制是如何实现的?如何保证集群的性能稳定?
    进阶 · 51 浏览 · 原题

  • #6731 HBase 中的延迟问题如何优化?如何减少数据写入的延迟?
    进阶 · 48 浏览 · 原题

  • #6732 在 HBase 中,如何通过协处理器实现业务逻辑的扩展?
    进阶 · 47 浏览 · 原题

  • #6733 HBase 的快照机制是如何工作的?如何通过快照进行数据恢复?
    进阶 · 41 浏览 · 原题

  • #6734 HBase 中的数据读写路径是如何设计的?如何通过优化读写路径提高性能?
    进阶 · 50 浏览 · 原题

  • #6735 HBase 如何处理 RegionServer 的失效?数据丢失如何避免?
    进阶 · 45 浏览 · 原题

  • #6736 HBase 的多版本控制(MVCC)是如何工作的?它如何支持数据的多版本存储?
    进阶 · 55 浏览 · 原题

  • #6737 HBase 的时序数据存储是如何实现的?它在物联网场景中的应用有哪些?
    进阶 · 72 浏览 · 原题

  • #6738 HBase 中的冷热数据分离是如何实现的?它对性能优化有什么帮助?
    深入 · 82 浏览 · 原题

  • #6739 HBase 是如何进行数据压缩和解压缩的?对性能的影响如何?
    深入 · 43 浏览 · 原题

  • #6740 在 HBase 中,如何优化大量小文件的存储问题?
    深入 · 64 浏览 · 原题

  • #6741 HBase 的协处理器是如何实现的?它的执行机制是什么?
    深入 · 38 浏览 · 原题

  • #6742 HBase 中如何进行二级索引的设计?如何通过二级索引加速查询?
    深入 · 72 浏览 · 原题

  • #6743 HBase 如何实现跨数据中心的容灾备份?有哪些常见的容灾策略?
    深入 · 44 浏览 · 原题

  • #6744 HBase 的集群扩展有哪些常见的挑战?如何保证扩展后的性能稳定?
    深入 · 38 浏览 · 原题

  • #6745 HBase 的 TTL 机制是如何实现的?如何通过 TTL 清理过期数据?
    深入 · 50 浏览 · 原题

  • #6746 在 HBase 中,如何通过批量操作提高大数据量场景下的写入性能?
    深入 · 39 浏览 · 原题

  • #6747 HBase 如何处理跨表 Join 操作?有哪些优化策略可以提升 Join 性能?
    深入 · 48 浏览 · 原题

  • #6748 在 HBase 中,如何通过预分区提高写入性能?预分区的设计要点有哪些?
    深入 · 43 浏览 · 原题

  • #6749 HBase 的 Region Split 机制是如何工作的?如何优化 Region Split 的性能?
    深入 · 42 浏览 · 原题

  • #6750 HBase 的一致性保证如何实现?与 CAP 理论中的一致性有何关联?
    深入 · 51 浏览 · 原题

  • #6751 HBase 的读写路径优化有哪些关键点?如何减少磁盘 I/O?
    深入 · 40 浏览 · 原题

  • #6752 在 HBase 中,如何处理热点问题?有哪些常见的优化策略?
    深入 · 57 浏览 · 原题

  • #6753 HBase 的协处理器如何影响性能?使用协处理器时有哪些注意事项?
    深入 · 35 浏览 · 原题

  • #6754 HBase 是如何通过多副本机制保证数据高可用的?多副本的代价是什么?
    深入 · 38 浏览 · 原题

  • #6755 在 HBase 中,如何进行数据压缩和加密操作?它们对性能有何影响?
    深入 · 38 浏览 · 原题

  • #6756 HBase 如何实现对大规模数据的快速扫描?有哪些优化策略?
    深入 · 46 浏览 · 原题

  • #6757 HBase 如何与 Flink 或 Spark Streaming 集成处理实时数据?如何保证高吞吐量和低延迟?
    深入 · 71 浏览 · 原题

  • #6758 HBase 如何应对集群扩展后的负载均衡问题?有哪些自动调节机制?
    深入 · 43 浏览 · 原题

  • #6759 HBase 如何处理数据复制和同步?跨数据中心的同步复制机制是什么?
    深入 · 45 浏览 · 原题

  • #6760 HBase 如何通过分布式架构实现数据高可用?它与 Zookeeper 的配合机制是什么?
    深入 · 44 浏览 · 原题

Hive(63)

  • #6552 Hive 是什么?它的主要功能是什么?
    基础 · 1.2k 浏览 · 原题

  • #6553 Hive 中的数据库和表是如何定义的?如何在 Hive 中创建一个表?
    基础 · 798 浏览 · 原题

  • #6554 Hive 的内部表和外部表有什么区别?在什么场景下适合使用外部表?
    基础 · 738 浏览 · 原题

  • #6555 在 Hive 中,如何通过 SQL 查询进行数据的过滤和排序?
    基础 · 638 浏览 · 原题

  • #6556 Hive 的分区(Partition)和分桶(Bucket)是什么?它们分别有什么作用?
    基础 · 722 浏览 · 原题

  • #6557 Hive 中的动态分区如何使用?与静态分区相比有什么不同?
    基础 · 571 浏览 · 原题

  • #6558 在 Hive 中,如何加载数据到表中?支持哪些数据加载方式?
    基础 · 532 浏览 · 原题

  • #6559 Hive 支持哪些常见的数据文件格式?这些格式有什么区别?
    基础 · 526 浏览 · 原题

  • #6560 Hive 的架构包括哪些组件?各组件的作用是什么?
    基础 · 539 浏览 · 原题

  • #6561 Hive 是如何与 Hadoop 生态系统集成的?它主要依赖哪些组件?
    基础 · 499 浏览 · 原题

  • #6562 在 Hive 中,什么是 SerDe?它在数据读写过程中起到什么作用?
    基础 · 410 浏览 · 原题

  • #6563 Hive 中的表分区如何实现?使用分区表的好处有哪些?
    基础 · 449 浏览 · 原题

  • #6564 在 Hive 中,如何创建分桶表?分桶表相比普通表有什么优势?
    进阶 · 448 浏览 · 原题

  • #6565 Hive 中的元数据存储在哪里?如何管理元数据?
    进阶 · 470 浏览 · 原题

  • #6566 Hive 中的 JOIN 操作有哪些类型?如何优化 JOIN 操作的性能?
    进阶 · 489 浏览 · 原题

  • #6567 在 Hive 中,如何实现多表连接?哪些 JOIN 操作的性能较优?
    进阶 · 437 浏览 · 原题

  • #6568 Hive 如何处理大数据量的排序?在实际应用中如何优化排序操作?
    进阶 · 435 浏览 · 原题

  • #6569 在 Hive 中,如何管理表的压缩?哪些常见的压缩格式可以使用?
    进阶 · 364 浏览 · 原题

  • #6570 Hive 是如何将 SQL 转换成 MapReduce 任务的?转换过程的关键步骤是什么?
    进阶 · 465 浏览 · 原题

  • #6571 在 Hive 中,如何优化 GROUP BY 查询的性能?有哪些常见的优化策略?
    进阶 · 442 浏览 · 原题

  • #6572 在 Hive 中,如何通过 UDF 实现自定义函数?UDF 的使用场景有哪些?
    进阶 · 361 浏览 · 原题

  • #6573 Hive 的分区裁剪(Partition Pruning)机制是如何工作的?它对查询性能有什么提升?
    进阶 · 332 浏览 · 原题

  • #6574 Hive 中的窗口函数(Window Function)是什么?它的应用场景有哪些?
    进阶 · 374 浏览 · 原题

  • #6575 Hive 的 Thrift Server 是什么?它如何支持远程查询?
    进阶 · 302 浏览 · 原题

  • #6576 Hive 的表锁机制是如何设计的?如何避免并发操作冲突?
    进阶 · 319 浏览 · 原题

  • #6577 在 Hive 中,如何配置和使用 ACID 表?事务支持的应用场景有哪些?
    进阶 · 286 浏览 · 原题

  • #6578 在 Hive 中,如何优化复杂的多表查询?有哪些常见的调优方法?
    进阶 · 313 浏览 · 原题

  • #6579 Hive 中的向量化查询(Vectorized Query)是什么?它如何提高查询性能?
    进阶 · 267 浏览 · 原题

  • #6580 Hive 的索引机制是如何实现的?索引如何影响查询性能?
    进阶 · 279 浏览 · 原题

  • #6581 Hive 中的 EXPLAIN 语句有什么作用?如何通过它来调优查询?
    进阶 · 298 浏览 · 原题

  • #6582 Hive 的查询优化器是如何工作的?有哪些优化策略?
    进阶 · 249 浏览 · 原题

  • #6583 Hive 的 CBO(Cost-Based Optimizer)优化器是什么?它如何基于代价进行优化?
    进阶 · 227 浏览 · 原题

  • #6584 在 Hive 中,如何优化 MapJoin 操作?MapJoin 与常规 Join 的性能差异是什么?
    进阶 · 263 浏览 · 原题

  • #6585 Hive 如何处理小文件问题?有哪些优化措施可以减少小文件带来的影响?
    进阶 · 304 浏览 · 原题

  • #6586 Hive 的动态分区插入如何实现?它在大规模数据加载中的优势是什么?
    进阶 · 233 浏览 · 原题

  • #6587 Hive 中的 Bucketing 是如何工作的?如何通过 Bucketing 优化查询性能?
    进阶 · 197 浏览 · 原题

  • #6588 Hive 中如何通过优化排序和分区提高查询效率?有哪些常见的优化手段?
    进阶 · 207 浏览 · 原题

  • #6589 Hive 是如何实现 Schema on Read 的?它与 Schema on Write 的区别是什么?
    进阶 · 184 浏览 · 原题

  • #6590 Hive 中的 HCatalog 是什么?它在数据管理中的作用是什么?
    进阶 · 191 浏览 · 原题

  • #6591 在 Hive 中,如何处理 NULL 值?如何优化带有 NULL 值的查询操作?
    进阶 · 266 浏览 · 原题

  • #6592 Hive 中的 Skew Join 是什么?如何通过 Skew Join 解决数据倾斜问题?
    进阶 · 261 浏览 · 原题

  • #6593 Hive 如何处理复杂的查询语句?如何优化复杂查询的执行计划?
    进阶 · 216 浏览 · 原题

  • #6594 在 Hive 中,如何进行数据清洗和预处理?有哪些常用的工具或方法?
    进阶 · 265 浏览 · 原题

  • #6595 在 Hive 中,如何优化数据插入的性能?批量插入操作的性能提升策略有哪些?
    进阶 · 205 浏览 · 原题

  • #6596 Hive 是如何进行数据存储格式选择的?不同数据格式对查询性能的影响有哪些?
    进阶 · 196 浏览 · 原题

  • #6597 Hive 如何实现表和分区的元数据缓存?缓存对性能优化有什么帮助?
    进阶 · 190 浏览 · 原题

  • #6598 在 Hive 中,如何调优资源使用以避免内存溢出?有哪些常见的内存优化策略?
    进阶 · 197 浏览 · 原题

  • #6599 在 Hive 中,如何设计合理的数据分区方案?有哪些常见的分区设计模式?
    进阶 · 218 浏览 · 原题

  • #6600 在 Hive 中,如何处理大规模数据集上的 JOIN 操作?有哪些性能优化策略?
    深入 · 275 浏览 · 原题

  • #6601 Hive 的优化规则有哪些?如何通过优化规则减少 MapReduce 任务的数量?
    深入 · 228 浏览 · 原题

  • #6602 在 Hive 中,如何管理和调优元数据的存储?元数据存储的瓶颈在哪里?
    深入 · 197 浏览 · 原题

  • #6603 Hive 中的多插入操作是如何实现的?如何优化该操作的性能?
    深入 · 178 浏览 · 原题

  • #6604 在 Hive 中,如何优化 order by 和 sort by 查询?两者有什么区别?
    深入 · 260 浏览 · 原题

  • #6605 Hive 的 Acid 性能瓶颈在哪里?如何调优 Acid 操作的性能?
    深入 · 226 浏览 · 原题

  • #6606 Hive 的内存调优策略有哪些?如何通过配置调优提高大数据量查询的性能?
    深入 · 193 浏览 · 原题

  • #6607 Hive 中的 UDTF(User-Defined Table-Generating Functions)是什么?如何实现一个 UDTF?
    深入 · 217 浏览 · 原题

  • #6608 在 Hive 中,如何利用索引加速查询?索引的维护成本是什么?
    深入 · 212 浏览 · 原题

  • #6609 Hive 中的 Materialized View 是什么?它如何帮助提升查询性能?
    深入 · 179 浏览 · 原题

  • #6610 Hive 中的 Merge 操作如何实现?如何优化 Merge 操作的性能?
    深入 · 205 浏览 · 原题

  • #6611 Hive 的基于代价的优化器(CBO)是如何工作的?如何利用 CBO 来优化查询计划?
    深入 · 176 浏览 · 原题

  • #6612 在 Hive 中,如何通过 Partition Filter 提升查询性能?常见的过滤策略有哪些?
    深入 · 188 浏览 · 原题

  • #6613 Hive 中的 Query Execution Plan 是如何生成的?如何通过执行计划优化查询?
    深入 · 203 浏览 · 原题

  • #6614 Hive 是如何通过 LLAP 实现低延迟查询的?LLAP 的工作机制是什么?
    深入 · 199 浏览 · 原题

数据仓库(51)

  • #7621 什么是数据仓库?它的主要用途是什么?
    基础 · 1.1k 浏览 · 原题

  • #7622 在数据仓库中,星型模型和雪花模型有什么区别?
    基础 · 881 浏览 · 原题

  • #7623 数据仓库中的事实表和维度表分别是什么?它们的作用是什么?
    基础 · 700 浏览 · 原题

  • #7624 什么是 OLAP?它与 OLTP 有什么区别?
    基础 · 784 浏览 · 原题

  • #7625 在数据仓库中,ETL 的基本流程是什么?
    基础 · 826 浏览 · 原题

  • #7626 数据仓库中的维度建模是什么?
    基础 · 694 浏览 · 原题

  • #7627 什么是数据仓库中的数据清洗?常见的数据清洗方法有哪些?
    基础 · 663 浏览 · 原题

  • #7628 在数据仓库中,什么是缓慢变化维度(SCD)?常见的 SCD 类型有哪些?
    基础 · 558 浏览 · 原题

  • #7629 数据仓库中的数据分区是什么?如何进行分区设计?
    基础 · 566 浏览 · 原题

  • #7630 在数据仓库中,什么是聚合表?它的作用是什么?
    基础 · 518 浏览 · 原题

  • #7631 数据仓库中增量数据加载与全量数据加载有什么区别?
    基础 · 494 浏览 · 原题

  • #7632 数据仓库如何实现数据的历史追踪?常见的实现方式有哪些?
    进阶 · 477 浏览 · 原题

  • #7633 数据仓库中,如何处理数据倾斜问题?有哪些常见的优化方法?
    进阶 · 557 浏览 · 原题

  • #7634 数据仓库的分层架构一般包括哪些层次?各层的作用是什么?
    进阶 · 537 浏览 · 原题

  • #7635 在数据仓库中,如何优化 SQL 查询性能?
    进阶 · 767 浏览 · 原题

  • #7636 数据仓库中的数据模型是如何设计的?常见的数据模型有哪些?
    进阶 · 471 浏览 · 原题

  • #7637 数据仓库中的维度表和事实表如何设计?有什么设计原则?
    进阶 · 476 浏览 · 原题

  • #7638 数据仓库中的数据刷新策略是如何设计的?如何选择增量刷新或全量刷新?
    进阶 · 365 浏览 · 原题

  • #7639 数据仓库中的数据分区策略如何影响查询性能?
    进阶 · 327 浏览 · 原题

  • #7640 在数据仓库中,如何进行数据的生命周期管理?
    进阶 · 387 浏览 · 原题

  • #7641 数据仓库与数据湖的区别是什么?如何在数据架构中选择使用?
    进阶 · 419 浏览 · 原题

  • #7642 如何在数据仓库中处理缓慢变化维度(SCD)类型 2?
    进阶 · 317 浏览 · 原题

  • #7643 数据仓库中的 ELT 与 ETL 有什么区别?各自的应用场景是什么?
    进阶 · 437 浏览 · 原题

  • #7644 数据仓库中的数据质量监控如何实现?有哪些常见的监控方法?
    进阶 · 328 浏览 · 原题

  • #7645 数据仓库如何处理大规模并发查询?有哪些性能优化策略?
    进阶 · 302 浏览 · 原题

  • #7646 数据仓库中如何使用缓慢变化维度类型 3 进行版本控制?
    进阶 · 273 浏览 · 原题

  • #7647 数据仓库的实时 ETL 如何实现?有哪些常见的技术方案?
    进阶 · 352 浏览 · 原题

  • #7648 在数据仓库中,如何处理多维度数据建模?
    进阶 · 309 浏览 · 原题

  • #7649 数据仓库中如何设计聚合策略以优化查询性能?
    进阶 · 254 浏览 · 原题

  • #7650 数据仓库的分布式架构如何实现?如何保证高可用性?
    进阶 · 257 浏览 · 原题

  • #7651 数据仓库中的事实表通常有哪些类型?如何选择合适的事实表类型?
    进阶 · 271 浏览 · 原题

  • #7652 在数据仓库中,如何处理大规模数据的存储与访问?
    进阶 · 240 浏览 · 原题

  • #7653 数据仓库的自动化数据建模和管理有哪些实现方法?
    进阶 · 232 浏览 · 原题

  • #7654 如何在数据仓库中实现元数据管理?元数据对数据仓库的重要性是什么?
    进阶 · 281 浏览 · 原题

  • #7655 数据仓库如何实现高效的 ETL 调度和任务管理?
    进阶 · 247 浏览 · 原题

  • #7656 在数据仓库中,如何设计数据集市?数据集市与数据仓库的区别是什么?
    进阶 · 267 浏览 · 原题

  • #7657 数据仓库中的维度退化是什么?它的应用场景是什么?
    进阶 · 267 浏览 · 原题

  • #7658 数据仓库中的聚合导航机制是如何工作的?
    进阶 · 189 浏览 · 原题

  • #7659 在数据仓库中,如何通过缓慢变化维度类型 6 实现数据的历史管理?
    深入 · 290 浏览 · 原题

  • #7660 数据仓库如何处理跨源数据整合?有哪些常见的整合方法?
    深入 · 274 浏览 · 原题

  • #7661 数据仓库的查询优化器是如何工作的?如何通过优化器提高查询性能?
    深入 · 235 浏览 · 原题

  • #7662 在数据仓库中,如何通过数据分层设计提高数据的可用性和性能?
    深入 · 266 浏览 · 原题

  • #7663 数据仓库中如何处理复杂的多层级维度建模?如何优化模型设计?
    深入 · 225 浏览 · 原题

  • #7664 数据仓库如何支持实时数据的分析和处理?有哪些常见的技术实现?
    深入 · 252 浏览 · 原题

  • #7665 在数据仓库中,如何实现跨集群的分布式查询?有哪些优化策略?
    深入 · 219 浏览 · 原题

  • #7666 数据仓库中的数据归档和数据删除策略是如何设计的?如何保证数据的历史追踪?
    深入 · 227 浏览 · 原题

  • #7667 在数据仓库中,如何通过自动化数据质量检测提高数据的准确性和完整性?
    深入 · 227 浏览 · 原题

  • #7668 数据仓库的高并发查询处理如何实现?有哪些调优技巧和策略?
    深入 · 267 浏览 · 原题

  • #7669 在数据仓库中,如何设计基于时间维度的复杂数据模型?
    深入 · 256 浏览 · 原题

  • #7670 数据仓库与数据湖的融合架构是如何实现的?它们如何协同工作?
    深入 · 287 浏览 · 原题

  • #7671 数据仓库的 ETL 和 ELT 流程中,如何设计高效的数据流处理?
    深入 · 348 浏览 · 原题

Spark SQL(57)

  • #7172 什么是 Spark SQL?它的主要功能是什么?
    基础 · 645 浏览 · 原题

  • #7173 在 Spark SQL 中,如何创建 DataFrame?DataFrame 与 RDD 有什么区别?
    基础 · 411 浏览 · 原题

  • #7174 Spark SQL 如何与 Hive 集成?如何在 Spark SQL 中查询 Hive 表?
    基础 · 409 浏览 · 原题

  • #7175 在 Spark SQL 中,如何使用 SQL 查询 DataFrame?
    基础 · 293 浏览 · 原题

  • #7176 在 Spark SQL 中,如何定义和注册一个临时视图(Temporary View)?
    基础 · 249 浏览 · 原题

  • #7177 Spark SQL 中的 Catalyst 优化器是什么?它的作用是什么?
    进阶 · 215 浏览 · 原题

  • #7178 在 Spark SQL 中,如何通过 UDF(用户自定义函数)扩展 SQL 功能?
    进阶 · 242 浏览 · 原题

  • #7179 如何在 Spark SQL 中进行数据的分区操作?分区对性能的影响是什么?
    进阶 · 213 浏览 · 原题

  • #7180 Spark SQL 中的 Schema 是如何定义的?如何动态推断 Schema?
    进阶 · 177 浏览 · 原题

  • #7181 在 Spark SQL 中,如何使用 DataFrame API 实现复杂的查询和聚合操作?
    进阶 · 159 浏览 · 原题

  • #7182 Spark SQL 中的 DataSet 和 DataFrame 有什么区别?如何选择使用?
    进阶 · 167 浏览 · 原题

  • #7183 Spark SQL 是如何优化查询计划的?Explain 语句的作用是什么?
    进阶 · 207 浏览 · 原题

  • #7184 Spark SQL 是如何处理内存中的大数据集的?它如何避免内存溢出?
    进阶 · 180 浏览 · 原题

  • #7185 Spark SQL 中的 Tungsten 优化是什么?它对性能提升的关键点是什么?
    进阶 · 127 浏览 · 原题

  • #7186 Spark SQL 的广播连接(Broadcast Join)是什么?在什么情况下使用?
    进阶 · 155 浏览 · 原题

  • #7187 在 Spark SQL 中,如何实现窗口函数操作?常见的窗口函数有哪些?
    进阶 · 204 浏览 · 原题

  • #7188 Spark SQL 如何通过缓存(Cache)提高查询效率?缓存机制的作用是什么?
    进阶 · 146 浏览 · 原题

  • #7189 在 Spark SQL 中,如何处理数据倾斜问题?有哪些优化策略?
    进阶 · 192 浏览 · 原题

  • #7190 如何在 Spark SQL 中进行表的分区和分桶?两者的区别是什么?
    进阶 · 157 浏览 · 原题

  • #7191 Spark SQL 中的 SQL 查询与 DataFrame API 查询有什么区别?
    进阶 · 128 浏览 · 原题

  • #7192 Spark SQL 如何与外部数据源(如 JDBC、HDFS)集成?如何进行数据导入和导出?
    进阶 · 136 浏览 · 原题

  • #7193 Spark SQL 是如何处理延迟加载的?延迟加载对性能有何影响?
    进阶 · 109 浏览 · 原题

  • #7194 如何在 Spark SQL 中使用内置函数进行复杂的 SQL 查询?
    进阶 · 93 浏览 · 原题

  • #7195 Spark SQL 中的 Catalyst 优化器是如何实现查询优化的?有哪些关键的优化步骤?
    进阶 · 90 浏览 · 原题

  • #7196 在 Spark SQL 中,如何使用 Parquet 格式存储数据?Parquet 格式的优势是什么?
    进阶 · 105 浏览 · 原题

  • #7197 如何在 Spark SQL 中设置并行度?并行度对查询性能的影响是什么?
    进阶 · 110 浏览 · 原题

  • #7198 Spark SQL 是如何处理数据分区的?如何设置自定义的分区策略?
    进阶 · 103 浏览 · 原题

  • #7199 在 Spark SQL 中,如何通过动态分区插入提高性能?
    进阶 · 89 浏览 · 原题

  • #7200 Spark SQL 中的 Schema Merge 是什么?它在数据处理中的作用是什么?
    进阶 · 88 浏览 · 原题

  • #7201 如何在 Spark SQL 中通过广播变量优化大型表的 Join 操作?
    进阶 · 95 浏览 · 原题

  • #7202 在 Spark SQL 中,如何使用自定义的序列化机制提高数据处理性能?
    进阶 · 79 浏览 · 原题

  • #7203 Spark SQL 中的跨节点数据交换是如何实现的?如何优化跨节点数据传输?
    深入 · 102 浏览 · 原题

  • #7204 在 Spark SQL 中,如何优化多表 Join 操作?有哪些常见的优化策略?
    深入 · 133 浏览 · 原题

  • #7205 Spark SQL 是如何通过 Project Tungsten 实现内存和 CPU 优化的?
    深入 · 82 浏览 · 原题

  • #7206 如何在 Spark SQL 中实现复杂的窗口聚合操作?有哪些典型的应用场景?
    深入 · 101 浏览 · 原题

  • #7207 Spark SQL 如何处理复杂的嵌套查询?如何优化嵌套查询的性能?
    深入 · 99 浏览 · 原题

  • #7208 在 Spark SQL 中,如何通过 Shuffle 操作优化查询计划?
    深入 · 110 浏览 · 原题

  • #7209 Spark SQL 中的动态分区插入和动态分区修剪是如何实现的?
    深入 · 76 浏览 · 原题

  • #7210 如何在 Spark SQL 中通过 CBO(基于代价的优化器)优化查询性能?
    深入 · 81 浏览 · 原题

  • #7211 Spark SQL 中的分区裁剪(Partition Pruning)是什么?它对查询性能有何影响?
    深入 · 80 浏览 · 原题

  • #7212 在 Spark SQL 中,如何优化跨数据源的联合查询(Join)操作?
    深入 · 90 浏览 · 原题

  • #7213 Spark SQL 如何与 Spark Streaming 集成?如何处理流式数据的 SQL 查询?
    深入 · 74 浏览 · 原题

  • #7214 Spark SQL 中的 Codegen 优化是如何工作的?它对查询性能的提升有何帮助?
    深入 · 58 浏览 · 原题

  • #7215 如何在 Spark SQL 中优化 JSON 数据的处理性能?
    深入 · 90 浏览 · 原题

  • #7216 Spark SQL 如何处理内存中的中间数据?如何通过内存管理优化性能?
    深入 · 72 浏览 · 原题

  • #7217 在 Spark SQL 中,如何实现高效的二次排序(Secondary Sort)?
    深入 · 78 浏览 · 原题

  • #7218 Spark SQL 中的列存储格式(如 Parquet)如何提高查询效率?
    深入 · 88 浏览 · 原题

  • #7219 如何在 Spark SQL 中通过自定义的序列化机制减少数据传输的开销?
    深入 · 74 浏览 · 原题

  • #7220 Spark SQL 的执行计划是如何生成和优化的?Explain 语句的结果如何解读?
    深入 · 84 浏览 · 原题

  • #7221 Spark SQL 中的 Hive 兼容性模式是如何工作的?如何处理 Hive 数据源的查询?
    深入 · 96 浏览 · 原题

  • #7222 在 Spark SQL 中,如何处理大规模数据的分布式 Join 操作?有哪些优化策略?
    深入 · 92 浏览 · 原题

  • #7223 Spark SQL 如何结合 Delta Lake 实现数据湖的管理?
    深入 · 83 浏览 · 原题

  • #7224 Spark SQL 如何处理 ETL 作业中的性能优化?有哪些常见的调优技巧?
    深入 · 120 浏览 · 原题

  • #7225 Spark SQL 中的 Catalyst 优化器如何通过规则引擎优化查询?
    深入 · 73 浏览 · 原题

  • #7226 Spark SQL 中的 Codegen 是如何通过生成字节码提高查询效率的?
    深入 · 61 浏览 · 原题

  • #7227 在 Spark SQL 中,如何优化递归查询?递归查询的性能瓶颈是什么?
    深入 · 96 浏览 · 原题

  • #7228 如何通过 Spark SQL 实现流式数据的查询和实时分析?
    深入 · 99 浏览 · 原题

向量数据库(28)

  • #11327 什么是向量数据库?在基于大模型的应用开发中,向量数据库主要解决什么问题?
    进阶 · 6.8k 浏览 · 原题

  • #11554 你都了解哪些向量数据库?如何选型?
    进阶 · 4.1k 浏览 · 原题

  • #11567 向量数据库原理是什么? 请简述下它的原理
    进阶 · 4.0k 浏览 · 原题

  • #11568 向量数据库中的 HNSW、LSH、PQ 分别是什么意思?
    进阶 · 3.3k 浏览 · 原题

  • #11570 向量数据库中的 ANN 是什么?为什么需要用它?
    进阶 · 2.9k 浏览 · 原题

  • #12655 什么是 RAG 混合检索?如何实现向量检索和关键词检索结合?
    进阶 · 1.1k 浏览 · 原题

  • #12657 RAG 系统如何利用元数据过滤提升检索精度?
    进阶 · 749 浏览 · 原题

  • #12661 RAG 中如何实现向量数据库的增量更新?
    进阶 · 776 浏览 · 原题

  • #13713 向量检索中的 pre-filter 和 post-filter 有什么区别?
    基础 · 0 浏览 · 原题

  • #13714 向量索引为什么会劣化?什么时候需要重建索引?
    基础 · 0 浏览 · 原题

  • #13715 向量数据库如何处理删除和合规删除?
    基础 · 0 浏览 · 原题

  • #13716 PQ 量化为什么能节省向量存储?它会带来什么代价?
    基础 · 0 浏览 · 原题

  • #13717 为什么向量数据库不等于 RAG 系统?
    基础 · 0 浏览 · 原题

  • #13718 向量检索系统如何定义召回率、MRR 和 NDCG?
    基础 · 0 浏览 · 原题

  • #13719 pgvector 适合什么场景?它和专用向量数据库有什么区别?
    基础 · 1 浏览 · 原题

  • #13720 如何实现向量库的在线重建和无感切换?
    基础 · 0 浏览 · 原题

  • #13721 混合检索中的 RRF 是什么?为什么比手动加权更稳?
    基础 · 0 浏览 · 原题

  • #13722 稀疏向量检索是什么?它和 BM25、稠密向量有什么关系?
    基础 · 0 浏览 · 原题

  • #13723 向量数据库如何支持多租户隔离?collection 隔离和 tenant_id 过滤怎么选?
    基础 · 0 浏览 · 原题

  • #13724 Embedding 模型升级时,向量库应该如何迁移?
    基础 · 0 浏览 · 原题

  • #13725 SPLADE 这类神经稀疏检索模型解决了什么问题?
    基础 · 0 浏览 · 原题

  • #13726 为什么向量检索结果有时看起来语义相关但业务上不相关?
    基础 · 0 浏览 · 原题

  • #13727 Milvus、Qdrant 和 pgvector 应该如何选型?
    基础 · 0 浏览 · 原题

  • #13728 如何压测向量数据库的 QPS 和 P99 延迟?
    基础 · 0 浏览 · 原题

  • #13729 IVF 索引中的 nlist 和 nprobe 应该怎么调?
    基础 · 0 浏览 · 原题

  • #13730 向量数据库如何设计冷热分层和归档策略?
    基础 · 0 浏览 · 原题

  • #13731 HNSW 的 efConstruction 和 efSearch 分别影响什么?
    基础 · 0 浏览 · 原题

  • #13732 向量库里的 payload index 有什么作用?
    基础 · 0 浏览 · 原题


MongoDB

热度偏低,按需取舍 · 共 73 题

基础概念与 CRUD(9)

  • #8397 什么是 MongoDB?它与传统关系型数据库的区别是什么?
    基础 · 2.0k 浏览 · 原题

    面向文档的 NoSQL 数据库,数据以 BSON 文档存储在集合中;与关系库相比:无固定 Schema、无 JOIN(用嵌入文档/$lookup)、支持水平分片、默认最终一致(可配 writeConcern/readConcern)。

  • #8398 在 MongoDB 中,什么是文档?它与表中的行有何不同?
    基础 · 960 浏览 · 原题

    文档是 BSON 格式的键值结构,可嵌套子文档和数组;表中的行结构固定且必须符合 Schema,文档则灵活、字段可不同,但代价是应用层要自己保证一致性。

  • #8399 MongoDB 的 BSON 格式是什么?与 JSON 有何区别?
    基础 · 812 浏览 · 原题

    BSON 是 JSON 的二进制扩展,支持 Date、ObjectId、Decimal128、二进制等类型,解析更快、更省空间;JSON 只有文本表示。

  • #8400 如何在 MongoDB 中创建一个集合?
    基础 · 825 浏览 · 原题

    db.createCollection(“name”, { capped: true, size: 1024 });也可以直接 insert 自动创建。可指定分片键、校验规则(validator)、TTL 索引。

  • #8401 MongoDB 的数据类型有哪些?如何在插入文档时使用不同的数据类型?
    基础 · 649 浏览 · 原题

    String、Int32、Int64、Double、Decimal128、Date、ObjectId、Boolean、Array、Embedded Document、Binary、Null、Timestamp。金额用 Decimal128,避免 Double 精度问题。

  • #8402 在 MongoDB 中,如何使用 find() 方法查询文档?
    基础 · 594 浏览 · 原题

    db.col.find({field: value}),支持比较符 $gt/$lt/$in/$ne、逻辑 $and/$or/$not、正则、$exists;findOne 返回单条。

  • #8404 如何在 MongoDB 中进行分页查询?
    基础 · 645 浏览 · 原题

    skip + limit(db.col.find().skip(20).limit(10)),数据量大时 skip 会变慢;优化用游标式分页:find({_id: {$gt: lastId}}).limit(10)。

  • #8405 什么是 MongoDB 中的主键 _id?如何自定义 _id 字段?
    基础 · 493 浏览 · 原题

    _id 是文档唯一主键,未指定时驱动自动生成 ObjectId(12 字节:时间戳 + 机器 + 进程 + 计数器,天然有序)。可自定义,但必须唯一且不可变。

  • #8407 在 MongoDB 中,如何实现数据的增删改查操作?
    基础 · 478 浏览 · 原题

    insertOne/insertMany、find、updateOne/updateMany($set/$inc/$push)、deleteOne/deleteMany;批量用 bulkWrite。

索引与查询优化(10)

  • #8403 什么是 MongoDB 中的索引?如何创建索引?
    基础 · 727 浏览 · 原题

    索引是 B 树结构,加速查询。db.col.createIndex({field: 1}),1 升序 -1 降序;还有唯一索引、复合索引、TTL 索引、文本索引、地理索引、部分索引。

  • #8410 MongoDB 的索引优化有哪些策略?如何提高查询效率?
    进阶 · 399 浏览 · 原题

    建索引要匹配查询模式与排序字段(ESR 原则:Equality → Sort → Range);用 explain(“executionStats”) 看 totalDocsExamined 与 nReturned 的比值;避免过多索引拖慢写入;用覆盖索引、部分索引、TTL 索引。

  • #8411 在 MongoDB 中,如何实现多字段索引?
    进阶 · 331 浏览 · 原题

    db.col.createIndex({a: 1, b: -1}),即复合索引,字段顺序至关重要,遵循最左前缀;排序方向在复合索引中影响能否免排序。

  • #8412 什么是 MongoDB 中的复合索引?如何创建并优化复合索引?
    进阶 · 307 浏览 · 原题

    复合索引多字段组合,顺序按"等值字段在前、范围/排序在后";只支持最左前缀匹配;可用 hint 强制使用,用 explain 验证是否 indexOnly。

  • #8416 在 MongoDB 中,如何实现全文检索功能?
    进阶 · 319 浏览 · 原题

    建文本索引 createIndex({content: “text”}),用 $text: {$search: “关键词”} 查询,支持权重、语言分词、$meta 排序;中文需指定 default_language 或用 Atlas Search / 外部搜索引擎。

  • #8417 MongoDB 的查询优化器是如何工作的?如何分析查询性能?
    进阶 · 232 浏览 · 原题

    查询优化器会做候选计划竞赛(plan ranking),选出成本最低的执行计划并缓存;用 explain(“allPlansExecution”) 看各候选计划,用 db.serverStatus() 看计划缓存命中。

  • #8420 MongoDB 中的 explain() 方法是如何帮助查询优化的?
    进阶 · 259 浏览 · 原题

    explain 有三种模式:queryPlanner(只看计划)、executionStats(看实际执行耗时与扫描文档数)、allPlansExecution(看候选计划)。关键指标:nReturned 与 totalDocsExamined 越接近越好,stage 出现 COLLSCAN 说明全表扫。

  • #8437 在 MongoDB 中,如何处理大规模集合的性能问题?
    进阶 · 131 浏览 · 原题

    大集合要建合适索引避免 COLLSCAN;用 $match 前置 + 覆盖索引减少文档读取;定期 compact 回收空间;按时间分片/分表归档历史数据;用 TTL 索引自动清理。

  • #8438 MongoDB 的 ttl 索引是如何实现的?它在什么场景下使用?
    进阶 · 123 浏览 · 原题

    createIndex({createdAt: 1}, {expireAfterSeconds: 3600}),后台线程每 60 秒扫描并删除过期文档;用于会话、验证码、日志等临时数据,不保证精确到秒删除。

  • #8447 在 MongoDB 中,如何处理二次索引和覆盖索引以优化查询性能?
    深入 · 149 浏览 · 原题

    覆盖索引(indexOnly)要求查询与返回字段全部在索引中,explain 里 totalDocsExamined 为 0;二次索引(secondary index)查询需回表到主索引取文档,因此尽量只投影索引字段。

聚合与数据处理(9)

  • #8409 在 MongoDB 中,如何通过 aggregate() 进行数据聚合?
    进阶 · 345 浏览 · 原题

    aggregate 管道:$match 过滤 → $group 分组聚合 → $sort → $project → $lookup 关联 → $unwind 展开数组 → $facet 多维度。管道阶段可任意组合,按顺序流式处理。

  • #8419 如何在 MongoDB 中使用 $group 和 $match 进行复杂的聚合查询?
    进阶 · 204 浏览 · 原题

    $match 先过滤缩小数据集(尽量走索引),$group 再按 _id 分组聚合($sum/$avg/$max/$push);顺序上把 $match 放最前面能显著减少参与聚合的文档数。

  • #8424 如何在 MongoDB 中使用管道进行数据流处理?
    进阶 · 171 浏览 · 原题

    聚合管道本身就是流式处理:每个 stage 处理完把结果流给下一个 stage;$out / $merge 可把结果落库,配合 changeStream 可做增量流式计算。

  • #8433 在 MongoDB 中,如何通过 mapReduce 实现分布式数据处理?
    进阶 · 133 浏览 · 原题

    mapReduce 已被聚合管道取代(4.4 起弃用),思路是 map 阶段输出 key-value、reduce 阶段聚合;现在用 $group + $accumulator 或 Spark 替代。

  • #8443 在 MongoDB 中,如何使用 $lookup 实现关联查询?
    进阶 · 119 浏览 · 原题

    $lookup 做左外关联:{ $lookup: { from, localField, foreignField, as } };可配合 $unwind 展开,或用 pipeline 形式做带条件的关联。跨分片 $lookup 性能差,应尽量用嵌入文档替代。

  • #8451 在 MongoDB 中,如何通过自定义聚合函数优化复杂查询?
    深入 · 94 浏览 · 原题

    用 $function / $accumulator 在聚合中写自定义 JS 逻辑(4.4+),但性能差、难以调试;优先用内置操作符组合,复杂计算下沉到应用层或 Spark。

  • #8452 MongoDB 中的 aggregation pipeline 是如何优化数据流处理的?
    深入 · 92 浏览 · 原题

    管道优化:$match 尽量前置并走索引、$project 尽早裁剪字段、$sort 利用索引避免内存排序、避免大 $lookup、用 allowDiskUse 处理超内存聚合;explain 可看每个 stage 的耗时。

  • #8466 如何在 MongoDB 中通过分布式聚合优化大规模数据的处理效率?
    深入 · 131 浏览 · 原题

    分布式聚合:$match 前置把过滤下推到各 shard 并行执行,mongos 只做最后的 merge;避免 $lookup 跨分片;超大聚合用 $out 落中间集合分步计算。

  • #8468 在 MongoDB 中,如何结合 Spark 实现大规模数据的实时处理?
    深入 · 160 浏览 · 原题

    MongoDB Spark Connector 读取(分片并行、谓词下推),Spark 做计算后写回或输出;配合 changeStream 做增量流,形成 Lambda/Kappa 架构。

复制集、分片与高可用(22)

  • #8406 MongoDB 的复制集是什么?它的作用是什么?
    基础 · 408 浏览 · 原题

    复制集是一组维护相同数据的 mongod 实例,包含 1 主多从 + 可选仲裁节点;作用是数据冗余、自动故障转移、读写分离(从节点读)。

  • #8408 什么是 MongoDB 中的分片?如何配置分片?
    进阶 · 699 浏览 · 原题

    分片是把数据按分片键水平拆分到多个 shard;架构含 shard、config server(存元数据)、mongos(路由)。步骤:启动 config 副本集 → 启动 shard 副本集 → 启动 mongos → sh.addShard → sh.enableSharding → sh.shardCollection。

  • #8413 MongoDB 的数据复制机制是如何工作的?如何保证数据的一致性?
    进阶 · 288 浏览 · 原题

    主节点接收写并记录 oplog,从节点持续拉取 oplog 并重放(异步复制);通过 writeConcern: majority 保证写入多数节点,readConcern: majority 保证读到多数已确认数据。

  • #8418 在 MongoDB 中,如何管理大规模的分布式集群?
    进阶 · 305 浏览 · 原题

    用 mongos 做路由层(可多实例 + 负载均衡),shard 按副本集部署保证高可用,config server 也必须是副本集;统一监控(Cloud Manager / Prometheus mongodb_exporter),按分片键设计避免热点。

  • #8422 在 MongoDB 中,如何处理数据一致性和高可用性之间的权衡?
    进阶 · 196 浏览 · 原题

    CAP 中 MongoDB 默认偏 CP:网络分区时少数派节点不可写。可在一致性与可用性间调节:writeConcern(1 / majority / all)+ readConcern(local / majority / linearizable)+ readPreference。

  • #8425 MongoDB 是如何通过分片实现水平扩展的?
    进阶 · 211 浏览 · 原题

    按分片键把集合切分为 chunk,均匀分布到多个 shard,由 balancer 在后台迁移 chunk 保持均衡;mongos 负责路由,config server 存元数据。

  • #8427 MongoDB 的副本集是如何处理故障转移和自动恢复的?
    进阶 · 147 浏览 · 原题

    心跳检测(默认 10s)发现主节点不可达 → 从节点发起选举(需多数派投票)→ 选出新主 → 其他从节点重新同步;应用驱动自动重连并路由到新主。

  • #8428 在 MongoDB 中,如何实现延迟副本?
    进阶 · 161 浏览 · 原题

    配置 members[n].priority = 0 且 hidden: true,并设置 slaveDelay 秒数,从节点会延迟应用 oplog;用于误操作恢复的"后悔药",也可做延迟报表查询。

  • #8429 MongoDB 是如何支持多数据中心的部署和复制的?
    进阶 · 136 浏览 · 原题

    副本集跨机房部署:把多数派节点放在主数据中心保证选举,其他机房放从节点,配合 readPreference: nearest 就近读;分片集群可在每个机房部署完整 shard 副本集。

  • #8430 在 MongoDB 中,如何配置分片键以保证数据分布均匀?
    进阶 · 151 浏览 · 原题

    分片键要满足:基数高(取值多)、分布均匀、查询常用(避免散射查询)、单调递增要避免(会热点)。哈希分片键(hashed)能均匀但失去范围查询优势;可用复合分片键兼顾。

  • #8434 MongoDB 的 changeStream 是如何工作的?它有哪些应用场景?
    进阶 · 121 浏览 · 原题

    changeStream 基于 oplog,通过 $changeStream 阶段订阅集合/库/集群的变更事件(insert/update/delete/replace/invalidate),支持 resumeToken 断点续传;用于实时同步、缓存失效、事件驱动架构。

  • #8440 MongoDB 的主从同步机制是如何工作的?如何配置从节点?
    进阶 · 151 浏览 · 原题

    从节点通过 initial sync(全量拉取)或 oplog 增量同步跟上主节点;配置 rs.add({host, priority}) 加入,用 rs.status() 看 stateStr 是否为 SECONDARY。

  • #8444 MongoDB 是如何处理多副本集的同步和冲突解决的?
    进阶 · 116 浏览 · 原题

    各节点通过 oplog 同步,按 timestamp 排序应用;冲突时以主节点写入为准(后写覆盖),不提供跨节点冲突合并(不像 Dynamo 的向量时钟)。

  • #8448 MongoDB 中的 oplog 是如何工作的?它在复制集中的作用是什么?
    深入 · 126 浏览 · 原题

    oplog 是固定大小的 capped collection(local.oplog.rs),记录所有写操作的幂等重放日志;从节点 tail 它做复制,changeStream 也基于它;大小决定可容忍的断线时长。

  • #8450 MongoDB 如何处理大规模数据集的并行查询和负载均衡?
    深入 · 138 浏览 · 原题

    mongos 把查询按分片键路由到目标 shard 并行执行,再在 mongos 侧做 merge sort / 聚合归并;无分片键的查询会广播到所有 shard(scatter-gather),代价高。

  • #8453 如何在 MongoDB 中设计跨集群的高可用性方案?
    深入 · 124 浏览 · 原题

    跨集群高可用:每个分片部署跨机房副本集(多数派在主中心)、config server 同样副本集化、mongos 多实例 + 负载均衡、用 Zone/Sharding Tag 做异地多活数据分布。

  • #8456 MongoDB 的水平扩展机制是如何实现的?如何动态增加节点?
    深入 · 120 浏览 · 原题

    加 shard → 新 shard 自动接收 balancer 迁移的 chunk → 数据重新均衡;扩容时注意 chunk 迁移对 IO 和网络的压力,可在低峰期设置 balancer 窗口。

  • #8457 在 MongoDB 中,如何处理数据倾斜和负载不均的问题?
    深入 · 114 浏览 · 原题

    数据倾斜源于分片键基数低或单调递增。解决:改用哈希分片键、复合分片键(加随机后缀/租户 ID)、预分片(pre-split)、手动 splitAt + moveChunk 迁移热点。

  • #8458 MongoDB 是如何保证分布式集群中数据的一致性和可用性的?
    深入 · 120 浏览 · 原题

    副本集内用 Raft 式选举 + majority 读写保证一致;跨分片靠两阶段提交与 config server 元数据保证;可用性靠多副本 + 自动 failover,分区时少数派拒绝写入(CP 取向)。

  • #8459 在 MongoDB 中,如何优化跨分片的查询性能?
    深入 · 118 浏览 · 原题

    跨分片查询要走 scatter-gather:让查询带上分片键(避免广播)、把 $match 前置、用 explain 看 shards 参与数量、结果集大时在应用层分页、必要时建冗余字段或改分片键。

  • #8462 MongoDB 是如何通过异步复制实现高可用性的?如何配置异步复制?
    深入 · 106 浏览 · 原题

    异步复制:主节点写本地 oplog 后即返回,从节点异步拉取重放,天然有 lag;配置靠 rs.add + priority/votes,配合 writeConcern: majority 可把"异步"收紧为"多数派确认"。

  • #8465 在 MongoDB 中,如何通过数据分布策略优化集群的存储和计算效率?
    深入 · 94 浏览 · 原题

    数据分布策略:哈希分片求均匀、范围分片求局部性(时间序列)、Zone/Tag 把数据固定在指定 shard(如按地域合规);定期检查 chunk 分布与 jumbo chunk。

事务与一致性(10)

  • #8415 MongoDB 的事务是如何实现的?如何在 MongoDB 中进行多文档事务?
    进阶 · 335 浏览 · 原题

    4.0 起支持多文档事务(副本集),4.2 起支持分片集群事务。用 session.startTransaction() / commitTransaction / abortTransaction,基于 snapshot 隔离级别,类似 SI。

  • #8421 如何在 MongoDB 中处理数据的并发性问题?
    进阶 · 213 浏览 · 原题

    单文档写入天然原子(文档级锁,WiredTiger 用文档级并发控制);多文档并发靠事务或乐观锁(版本字段 + findAndModify);高并发写用分片 + 合理分片键打散。

  • #8423 什么是 MongoDB 中的 CAP 理论?它如何应用于 MongoDB 的架构设计?
    进阶 · 227 浏览 · 原题

    MongoDB 在 CAP 中偏 CP:分区时多数派侧可用、少数派拒写;但通过 writeConcern/readConcern 可在 C 与 A 之间做取舍,副本集内是强一致(majority 读),跨分片是最终一致。

  • #8431 MongoDB 中的 writeConcern 是什么?如何影响数据的一致性?
    进阶 · 127 浏览 · 原题

    writeConcern 控制写确认级别:w:1 主节点确认即返回(快但可能丢)、w:majority 多数派确认(安全常用)、w:all 全部节点;配合 j:true 保证写入 journal。

  • #8432 如何在 MongoDB 中实现复杂的事务管理?有哪些场景适合使用事务?
    进阶 · 147 浏览 · 原题

    用 session 显式开事务,try/catch 中 commit 或 abort,设置 maxCommitTimeMS 与 readConcern/writeConcern;适合跨文档转账、订单+库存这类需要原子性的场景,不适合高频短事务(开销大)。

  • #8439 在 MongoDB 中,如何处理数据一致性、分布式事务和性能之间的平衡?
    进阶 · 139 浏览 · 原题

    三者只能取其二:要强一致就上 majority 读写(慢),要高可用就降 writeConcern(可能丢),要高性能就异步 + 最终一致。按业务分级:资金类强一致,日志类弱一致。

  • #8445 在 MongoDB 中,如何实现分布式事务和 ACID 特性?
    进阶 · 204 浏览 · 原题

    4.0+ 多文档事务基于 snapshot 隔离 + 两阶段提交(prepare/commit);分片集群事务还需各 shard 与 config server 协调,性能开销明显高于单文档原子写。

  • #8460 MongoDB 的 two-phase commit 机制是如何保证分布式事务的?
    深入 · 108 浏览 · 原题

    两阶段提交:协调者让所有分片 prepare(锁定并写 prepare 记录)→ 全部成功则 commit,否则 abort;期间状态持久化,崩溃后可恢复。MongoDB 4.2+ 已用更完善的事务协议替代早期实现。

  • #8464 MongoDB 的 readConcern 是如何配置的?它如何影响查询的结果一致性?
    深入 · 111 浏览 · 原题

    readConcern 级别:local(默认,可能读到回滚数据)、available(分片下最快)、majority(读多数派已确认,不脏读)、linearizable(线性一致,只用于主节点单文档读)、snapshot(事务内一致快照)。

  • #8467 MongoDB 的 causal consistency 是如何保证事件顺序的?
    深入 · 93 浏览 · 原题

    因果一致性:通过 clusterTime 与 operationTime 保证同一客户端会话的读写顺序(readConcern: “majority” + afterClusterTime);基于逻辑时钟(Hybrid Logical Clock),保证"读到自己的写"。

运维、备份与存储引擎(13)

  • #2619 描述在 MongoDB 中如何进行数据备份和恢复。
    进阶 · 367 浏览 · 原题

    mongodump / mongorestore(逻辑,可 –gzip、–oplog);文件系统快照(需 db.fsyncLock 保证一致);副本集用 oplog 做时间点恢复;生产更推荐 Atlas / Cloud Manager 的持续备份。

  • #8414 在 MongoDB 中,如何实现备份和恢复?
    进阶 · 301 浏览 · 原题

    mongodump / mongorestore(逻辑备份,可指定 –gzip、–oplog);文件系统快照(需 fsyncLock);Atlas/Cloud Manager 的 PITR(基于 oplog 恢复到任意时间点)。

  • #8426 如何在 MongoDB 中优化写操作的性能?有哪些常用方法?
    进阶 · 169 浏览 · 原题

    批量写(bulkWrite / insertMany 有序或无序)、合理设置 writeConcern(非关键数据用 w:1)、关闭不必要的索引、用更紧凑的 Schema、SSD、增大 WiredTiger cache、分片打散写热点。

  • #8435 在 MongoDB 中,如何设计 Schema 以优化查询和存储效率?
    进阶 · 130 浏览 · 原题

    按查询模式设计:常用一起查的数据嵌入(embedding)在一起减少关联,无界增长或独立访问的数据用引用(referencing);控制单文档大小(16MB 上限),避免深度嵌套数组。

  • #8436 MongoDB 的并发控制机制是如何实现的?如何管理并发读写操作?
    进阶 · 145 浏览 · 原题

    WiredTiger 使用文档级并发控制 + MVCC(多版本),读写不互相阻塞;通过 snapshot 隔离;热点文档更新仍是串行,需要分片或拆字段缓解。

  • #8441 在 MongoDB 中,如何实现热备份和冷备份?它们各自的优缺点是什么?
    进阶 · 125 浏览 · 原题

    热备份:mongodump / 文件系统快照 / 云 PITR,不中断服务,恢复较慢;冷备份:停库拷贝数据文件,快且完整,但需要停机。生产推荐"热备份 + oplog"实现时间点恢复。

  • #8442 如何在 MongoDB 中使用 GridFS 存储大文件?
    进阶 · 137 浏览 · 原题

    GridFS 把大文件切成 255KB 的 chunk 存在 fs.chunks,元数据存 fs.files,支持流式读写与分片;适合 >16MB 的文件,但不如对象存储经济。

  • #8446 MongoDB 的存储引擎 WiredTiger 是如何工作的?它与 MMAPv1 有何区别?
    进阶 · 117 浏览 · 原题

    WiredTiger:文档级并发、MVCC、压缩(snappy/zstd)、checkpoint + journal 持久化、独立 cache(默认 50% 内存 - 1GB);MMAPv1 是集合级锁、无压缩,3.0 后已被取代,4.2 移除。

  • #8449 在 MongoDB 中,如何通过分区提高数据的读写性能?
    深入 · 127 浏览 · 原题

    分区即分片:选高基数分片键使 chunk 均匀分布,把读写打散到多个 shard 并行处理;避免单调递增键(写入集中单 shard 形成热点)。

  • #8454 MongoDB 是如何通过 journal 实现数据的持久化和一致性的?
    深入 · 91 浏览 · 原题

    journal(WiredTiger 的 WAL)先顺序写日志再刷数据文件;默认每 100ms 或每 50MB 落盘,配合 writeConcern j:true 可在崩溃后恢复到最后一次确认的写。

  • #8455 在 MongoDB 中,如何处理大规模并发写入的性能优化问题?
    深入 · 110 浏览 · 原题

    提高并发写:分片键打散、批量无序写(ordered: false)、降低 writeConcern、减少索引数量、用更小的文档、SSD + 调大 WiredTiger cache、mongos 多实例分担。

  • #8461 在 MongoDB 中,如何通过性能监控和日志分析优化集群性能?
    深入 · 105 浏览 · 原题

    监控指标:opcounters、queued 读写队列、WiredTiger cache 命中率与脏页比例、replication lag、chunk 分布均衡度;用 mongostat / mongotop / serverStatus / 慢查询 profiler(db.setProfilingLevel)定位。

  • #8463 在 MongoDB 中,如何通过自定义存储引擎优化数据的持久化策略?
    深入 · 142 浏览 · 原题

    MongoDB 4.2+ 支持可插拔存储引擎(WiredTiger、In-Memory、Encrypted);自定义引擎需要实现 StorageEngine API(C++),一般用 WiredTiger 的压缩/加密/checkpoint 参数调优即可,不建议自研。


仍然缺失的(题库没有、但 2026 年 DBA 面试会问)

  1. 国产分布式数据库:TiDB / OceanBase / GaussDB / PolarDB 的架构、扩缩容、HTAP 取舍
  2. 云上 RDS 运维差异:只读实例延迟、代理层限流、参数白名单、备份保留、跨可用区切换
  3. Kubernetes 上的数据库:Operator、StatefulSet、PVC 与本地盘、有状态服务调度
  4. 真实故障复盘:CPU 打满、连接数耗尽、锁等待堆积、磁盘写满的处置顺序
  5. 容量规划与成本:增长预估、QPS 与连接数规划、冷热分层
  6. 安全与合规落地:等保、审计留存、脱敏、权限审批流