avatar
文章
377
标签
447
分类
12
首页
留言板
知识库
归档
标签
分类
关于
Dai Wei
搜索
首页
留言板
知识库
归档
标签
分类
关于

Dai Wei

SQL语法基础知识总结
发表于2019-11-12|数据库
语法是表达查询意图的骨架。把 SELECT-FROM-WHERE-GROUP-HAVING-ORDER 链条练熟,复杂 SQL 才能拆解。 查询骨架1234567SELECT col1, COUNT(*) AS cntFROM ordersWHERE status = 'PAID'GROUP BY col1HAVING cnt > 10ORDER BY cnt DESCLIMIT 20; 连接类型INNER JOIN 取交集;LEFT JOIN 保左表全部行;注意 JOIN 条件与过滤条件放 WHERE 还是 ON 的语义差异。 聚合与 NULLCOUNT(*) 计行;COUNT(col) 不计 NULL;AVG 忽略 NULL。GROUP BY 列需与 SELECT 非聚合列一致(ONLY_FULL_GROUP_BY)。 DML 安全UPDATE/DELETE 必带 WHERE;先用 SELECT 验证;事务包裹批量变更。 约束与完整性PRIMARY KEY、UNIQUE、NOT NULL、CHECK、FOREIGN KEY 在 DDL...
SQL常见面试题总结(1)
发表于2019-11-03|数据库
第一部分面试题聚焦「会不会写基础查询」。关键是理解 NULL、DISTINCT 与 LIMIT 的语义边界。 高频基础点 DISTINCT 去重全行组合,不是单列魔法。 ORDER BY 可对别名排序;NULL 默认放最前/最后因 DB 而异。 LIMIT offset, count 大 offset 性能差,改 keyset pagination。 12SELECT DISTINCT user_id FROM login_log WHERE dt = '2026-09-01';SELECT * FROM product ORDER BY price DESC, id ASC LIMIT 10; NULL 处理IS NULL / IS NOT NULL;COALESCE(col, 0) 给默认值;注意 NULL = NULL 为 UNKNOWN。 实践建议手写 10 道基础题不看答案;对照 EXPLAIN 看是否走索引。 分页模式Keyset: WHERE id > ? ORDER BY id LIMIT 20 利用索引;of...
字符集详解:字符集是什么?怎么用?
发表于2019-10-25|数据库
乱码和 emoji 存不进去,根因往往在字符集链路某一段不一致。搞清「字符集 vs 编码」比背命令更重要。 核心概念字符集是字符集合;编码是字符与字节的映射规则。计算机只认字节,显示什么取决于解码规则是否一致。ASCII 用 7 位有效位;中文体系经历 GB2312/GBK/GB18030;Unicode 统一码点,UTF-8/UTF-16 是常见编码实现。 MySQL 里的 utf8 陷阱MySQL 的 utf8 实际是阉割版 UTF-8,最多三字节,无法存 emoji 与部分生僻字。生产应默认 utf8mb4,并在表、列、连接层保持一致。 12CREATE DATABASE app DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;SET NAMES utf8mb4; 全链路一致客户端、连接、服务器、库、表、列六级字符集任一不一致都可能乱码。排查时从 SHOW VARIABLES LIKE 'character%' 与 SHOW CREATE TABLE 入手,...
SQL 专题:语法基础、查询、聚合、连接、子查询与常见面试题
发表于2019-10-17|数据库
SQL 是关系型世界的通用语言。掌握声明式查询思维,比记忆方言细节更能迁移到不同数据库。 学习路径 DDL/DML 基础与约束 过滤、排序、聚合、分组 多表连接(INNER/LEFT/RIGHT) 子查询与 EXISTS 窗口函数与常见面试题 与 MySQL 的关系SQL 是标准语言,MySQL 是具体实现。执行计划、索引、锁在 MySQL 层展开,但查询语义先按 SQL 理解。 实践建议用 small dataset 手写查询再 EXPLAIN;复杂报表优先 CTE(8.0+)提升可读性。 方言差异LIMIT/OFFSET、窗口函数、CTE 在不同数据库支持度不同。写 portable SQL 避免专有 hint。 安全参数化查询防注入;最小权限 DB 账号。 实践复习清单DDL/DML/查询/连接/窗口函数模块自检; portable SQL 意识;注入防护;复杂 SQL 先 CTE 拆解;对照 MySQL 8 特性。 常见坑 只会 ORM 不会写 JOIN。 把 HAVING 当 WHER...
数据库知识体系:SQL、MySQL、Redis、MongoDB 与 Elasticsearch
发表于2019-10-08|数据库
后端工程师的数据库能力往往决定系统上限。本文把关系型、缓存与 NoSQL 串成一条可执行的学习主线。 学习主线怎么排建议按「通用概念 → SQL 基本功 → MySQL 内核 → Redis 工程化 → 按需补 NoSQL」推进。先搞清 ACID、范式、索引与事务,再进入执行计划与日志;缓存部分重点理解穿透/击穿/雪崩与一致性策略,而不是死记命令。 各模块要抓什么 SQL:会写不等于会优化,连接、子查询与聚合的语义要能和执行计划对应。 MySQL:索引、隔离级别、MVCC、redo/undo/binlog 是一条链,慢 SQL 排查从这里串。 Redis:数据结构选型、持久化、阻塞排查、集群分片是面试与线上并重的高频区。 MongoDB/ES:按岗位补充,文档模型与倒排索引各自解决不同检索场景。 实践建议每学一个主题,用一个小例子验证:建表加索引看 EXPLAIN;开两个会话验证隔离级别;用 Redis 实现缓存并故意制造击穿场景。只看不练,面试和排障都容易卡壳。 常见误区 把「会用 ORM」当成「懂数据库」。 索引越多越好...
数据库基础常见面试题总结
发表于2019-09-29|数据库
数据库面试的第一层考的是概念是否清晰:数据、管理系统、事务与模型边界搞混,后面 MySQL 细节很难串起来。 四个层次别混用DB 是存数据的集合;DBMS 是管理数据的软件(MySQL、PostgreSQL);DBS 是硬件+软件+人+应用的系统;DBA 负责设计、备份、权限与性能。日常说「连 MySQL」其实连的是 DBMS,里面可以托管多个逻辑库。 DBMS 在干什么四大职能可以记成「定义—操作—控制—维护」:DDL 管结构,DML 管 CRUD,并发/事务/权限管正确性与安全,导入导出与备份管生命周期。SQL 只是对外接口,底层还有缓冲池、锁、日志等机制。 关系型 vs NoSQL 怎么选关系型擅长结构化数据与强一致事务;NoSQL 在水平扩展、灵活 schema、特定访问模式上更顺手。选型看访问模式与一致性要求,而不是流行度。 事务 ACID 要点原子性靠 undo,持久性靠 redo+binlog,隔离性靠锁与 MVCC,一致性是最终目标。并发下脏读、不可重复读、幻读分别对应不同隔离级别权衡。 数据模型与范式概念模型(ER)到逻辑模型(表)再到物...
动态规划面试题总结:状态转移、背包、子序列与 Java 模板
发表于2019-09-20|计算机基础
动态规划适合具有重叠子问题和最优子结构的问题。它把递归搜索中的重复状态保存下来,使每个状态只求一次。关键不在背公式,而在定义 dp 的含义:它必须足以描述后续决策所需的信息。 标准步骤是:确定状态;列出选择;写转移方程;设置边界;决定遍历顺序;判断是否能压缩空间。以台阶计数为例,若每次走一或两级,dp[i] 表示到达第 i 级的方法数,则最后一步来自 i-1 或 i-2,所以 dp[i]=dp[i-1]+dp[i-2]。 背包问题尤其依赖顺序。0/1 背包中每件物品只能使用一次,一维数组的容量必须倒序遍历,避免当前物品被重复读取;完全背包允许重复使用,容量通常正序。子序列问题常把 dp[i] 或 dp[i][j] 定义为以某位置结尾或两个前缀上的答案。 若有 S 个状态、每个状态枚举 T 个选择,时间通常为 O(ST),空间为状态表大小。记忆化搜索与自底向上 DP 在渐近复杂度上常相同:前者接近自然递归且只访问可达状态,后者无栈开销且遍历可控。 误区包括状态含义含糊、初始化与定义冲突、只写方程不说明遍历依赖、盲目空间压缩覆盖尚未使用的值,以及把所有最优化问题都套 D...
双指针与滑动窗口面试题总结:数组、链表、字符串高频模板
发表于2019-09-11|计算机基础
双指针通过两个位置共同描述搜索范围。相向指针常用于有序数组求和与回文判断;同向快慢指针适合原地去重、链表环和写入压缩;滑动窗口则维护一段连续区间及其统计量。 滑动窗口的通用步骤是右端不断纳入元素并更新计数,当窗口违反约束时移动左端并撤销影响,恢复合法后记录答案。求最短满足窗口时,合法后应尽可能收缩;求最长合法窗口时,通常在恢复合法后更新最大长度。 123456left = 0for right in [0..n): add(a[right]) while window invalid: remove(a[left]); left++ update answer with [left,right] 算法高效的原因不是只有一层循环,而是左右指针都只单调前进,最多各走 n 次,所以总时间 O(n)。窗口统计可用整数、哈希表或定长频次数组,空间由字符集或键数量决定。若元素含负数,“窗口和过大就缩小”的单调性可能消失,此时需要前缀和、单调队列等方案。 有序两数之和中,和偏小就移动左指针,偏大就移动右指针,因为有序性保证被排除位置不可能产生答案。三数之和可先排序,固定一个元...
Top K 问题面试题总结:堆、快排分区、桶计数与数据流
发表于2019-09-02|计算机基础
Top K 不是固定算法,而是“从大量元素中保留最大或最小的 K 个”。直接排序简单,时间 O(n log n);当 K 远小于 n,维护大小为 K 的堆通常更合适。 求最大的 K 个元素时使用小顶堆:先把元素加入堆,超过 K 个就弹出堆顶。堆顶始终是当前入选集合中最小者,新元素只有更大才有保留价值。每次调整 O(log K),总时间 O(n log K)、空间 O(K),并且适合数据流,因为无须保存全部输入。 快速选择利用快排分区:枢轴归位后,根据其位置只处理包含第 K 个边界的一侧。平均时间 O(n)、最坏 O(n²),随机枢轴可降低退化风险;它会修改数组,且只保证分区,不保证 Top K 内部有序。若还要求输出顺序,可再排序 K 个结果。 当值域或频次范围有限,可计数后从高到低收集,成本约 O(n+R);高频元素问题也可按频次建桶。多机海量数据可先分片求局部 Top K,再合并候选,但分片规则与热点倾斜需要额外设计。 常见误区是求最大 K 却建最大堆导致保留方向错误、默认快速选择稳定、忽略重复值及 K 越界,以及把“第 K 大”和“前 K 大且有序”混为同一输出。小结:...
剑指offer部分编程题
发表于2019-08-25|计算机基础
面试题训练的重点是把约束转换成结构。二维有序矩阵可从右上角开始:目标更小就左移,更大就下移,每一步排除一行或一列,时间 O(m+n)。链表反转维护三个指针;树的重建依靠前序确定根、中序划分左右子树。 数组旋转最小值可利用局部单调性二分,但重复值会让边界判断失去方向,此时只能保守缩小区间。栈的压入弹出序列验证,可用辅助栈模拟:按压入顺序推进,每次栈顶等于当前弹出值就持续弹出,最终全部匹配才合法。连续子数组最大和可维护“以当前位置结尾的最大和”,转移为继续累加或从当前数重新开始。 复杂度表达应对应机制:矩阵搜索不访问每个格子,而是最多移动行列之和;树重建若每次在线性查中序根会到 O(n²),用哈希表记录下标可降为 O(n);辅助栈验证为 O(n) 时间和 O(n) 空间。 解题时先复述输入、输出及空值约定,再给暴力基线,随后指出利用的有序性、重复状态或数据结构。写完应测试空输入、单元素、重复值、全负数、退化树和整数溢出。若题目允许修改输入,也要主动说明。 误区是背住某道题的代码,却无法解释边界为何移动;或者只报最终复杂度,不交代隐藏的库调用。小结:题目集合并非知识点清单,真正要练...
1…252627…38
avatar
Dai Wei
软件开发者,记录技术探索与实践
文章
377
标签
447
分类
12
Follow Me
公告
分享软件开发、工程实践与持续学习中的思考。
最新文章
Trae + MiniMax 多场景实战:Redis 故障排查与跨语言重构2026-08-28
Kimi K3 实战:全栈项目、Java 项目改造与 3A 游戏 Demo2026-08-23
测试开发学习路线(2026 最新版):AI 时代如何从测试走向质量工程2026-08-20
IDEA + Qoder 插件多场景实战:接口优化与代码重构2026-08-18
DeepSeek V4 + Claude Code 实战:代码能力深度测评2026-08-14
分类
  • AI 编程28
  • Java103
  • 人工智能39
  • 分布式系统26
  • 学习路线5
  • 开发工具11
  • 数据库42
  • 系统设计26
标签
线程优先级 DBMS 大模型 Java基础 命令 Top K 安全 Loop 计算机网络 Raft 贪心 修饰权限 TCC 最终一致性 召回 网络编程三要素 服务调用 分布式理论 知识体系 复杂度 红黑树 Unsafe 面试 Java26 BASE 内存管理 语音 redo log Kimi NoSQL Seata CAS 优化器 RDB 线程通信 面试题 IDE 死锁 ZAB 编排
归档
  • 八月 2026 7
  • 七月 2026 7
  • 六月 2026 6
  • 五月 2026 7
  • 四月 2026 6
  • 三月 2026 4
  • 二月 2026 5
  • 一月 2026 5
网站信息
文章数目 :
377
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2017 - 2026 By Dai Wei框架 Hexo 8.1.2|主题 Butterfly 5.7.0
搜索
数据加载中