MySQL 用 UNION 和 UNION ALL 的区别
UNION 自动去重UNION ALL 保留所有行。UNION 需要额外排序去重数据量大时性能比 UNION ALL 差很多。不需要去重的查询应该用 UNION ALL。
MySQL 使用索引排序 ORDER BY 不走 filesort
ORDER BY 和 WHERE 共用同一个索引或者 ORDER BY 字段有独立索引时无需额外排序。Extra 里没有 Using filesort 说明走索引排序。本文解释索引排序的条件。
PostgreSQL jsonb 字段查询操作符
PostgreSQL 的 jsonb 类型用 -> 返回 JSON 对象->> 返回文本#> 按路径访问嵌套字段。了解这些操作符可以高效查询 JSON 数据。本文对比各操作符的返回值类型。
MySQL 唯一约束和 NULL 的关系
MySQL 的唯一约束允许多行 NULL 值因为 NULL 不等于任何值包括另一个 NULL。业务上需要唯一但不强制填写时这可能不是你想要的行为。本文给出替代方案。
MySQL 清空表数据用 TRUNCATE 还是 DELETE
TRUNCATE 清空表且重置自增 ID 到初始值速度极快但不可回滚。DELETE FROM table 逐行删除保持自增 ID 计数可回滚但速度慢。本文对比两种方式的差异。
PostgreSQL 中时间区间查询的 BETWEEN 边界问题
WHERE created_at BETWEEN 2024-01-01 AND 2024-01-31 不包括 1 月 31 日 23:59:59 之后的数据。用 >= AND < 下一天的写法可以避免边界漏数据。本文用实际数据对比两种写法的差异。
MySQL 字符串字段没有索引导致全表扫描
WHERE name = something 在 VARCHAR 字段上如果不建索引即使条件准确也只能全表扫描。前缀索引可以显著减少索引大小但需要选择合适的长度。本文介绍如何确定前缀索引的长度。
MySQL COUNT 哪个最快
MySQL COUNT 哪个最快是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。
PostgreSQL NULL 不等于 NULL
PostgreSQL NULL 不等于 NULL是开发中经常遇到的问题。本文从实际场景出发分析原因并给出可操作的解决方案适合正在排查这个问题的开发者参考。
PostgreSQL 中的 EXPLAIN ANALYZE 执行了真的 SQL
EXPLAIN ANALYZE 会真实执行 SQL 语句不只是估算对 INSERT/UPDATE/DELETE 会真正修改数据。如果在生产库上执行可能会造成数据变更。只想看执行计划不加 ANALYZE。本文区分 EXPLAIN 和 EXPLAIN ANALYZE 的行为差异。
ShardingSphere 分片
集成 ShardingSphere-JDBC 实现透明的分库分表与读写分离。
Firebase 实时数据库
使用 Firebase Realtime Database 实现客户端间数据实时同步,快速构建协作应用。
Oracle 数据库基础
学习 Oracle 数据库架构、存储结构、用户权限及 PL/SQL 编程,步入企业级数据管理。
Microsoft SQL Server 入门
熟悉 SQL Server 体系结构、T-SQL 编程及使用 SSMS 进行数据库管理与维护。
SQLite 轻量数据库
学习 SQLite 的特性、使用场景及 Python/Android 等语言的调用方法,实现轻量数据存储。
Elasticsearch 搜索引擎
掌握 ES 核心概念、DSL 查询、聚合分析与集群运维,构建企业级全文搜索与日志处理平台。
PostgreSQL 入门到精通
全面学习 PostgreSQL,包括复杂查询、窗口函数、JSON 支持、事务隔离与性能调优。
Redis 缓存与消息队列实战
深入 Redis 数据类型、持久化策略,构建缓存加速层、消息队列和分布式锁,解决高并发场景下的性能瓶颈。
MongoDB 文档数据库应用开发
学习 MongoDB 数据建模、CRUD 操作、聚合管道以及高可用副本集与分片集群设计,应对大数据场景下的灵活存储需求。
SQL 数据库设计与查询优化
掌握关系型数据库设计范式、复杂 SQL 编写、索引策略与查询执行计划分析,提升数据库性能并避免常见陷阱。