-
2026-01-24 11:01:02
-
2026-01-24 11:32:02
- SQL 聚合函数如何利用索引?
- GROUPBY字段不必有索引,但无索引时易触发全表扫描和文件排序;索引需按GROUPBY列顺序创建且不被WHERE打断才能优化分组;COUNT(*)/COUNT(1)可走最小索引,COUNT(col)需考虑NULL;MAX/MIN可O(1)取索引端点,SUM/AVG需索引覆盖;EXPLAIN显示type=ALL常因函数、类型转换或统计信息过期导致。
-
835
-
2026-01-24 11:39:39
- SQL 语法正确但结果错误的常见原因
- 最隐蔽的SQL错误是WHERE用AND代替OR导致逻辑错误,如status=‘pending’ANDstatus=‘failed’永返空;JOIN缺ON致笛卡尔积;LEFTJOIN后WHERE过滤NULL使逻辑变INNERJOIN;GROUPBY漏列致随机值;多表ORDERBY未加别名引发歧义。
-
518
-
2026-01-24 11:43:09
- ruff 如何配置才能同时替代 black + isort + flake8
- Ruff可原生替代Black、isort、Flake8:只需在pyproject.toml中配置[tool.ruff.format]和select=["E","F","I","UP"],启用line-length=88并设profile="black"即可实现格式化、导入排序与代码检查三合一。
-
642
-
2026-01-24 12:29:20
-
2026-01-24 12:31:13
- SQL 为什么 NULL 不能直接比较?
- NULL比较返回UNKNOWN而非TRUE/FALSE,因NULL表示未知值,无法确定与任何值(包括自身)的相等性;SQL采用三值逻辑,仅ISNULL/ISNOTNULL能正确判断NULL。
-
566
-
2026-01-24 13:08:43
-
2026-01-24 14:12:09
- SQL 复合索引的最左前缀原则
- 复合索引必须从最左列开始查,因B+树按索引列顺序逐级排序,仅最左列有序性支持二分查找;跳过则无法定位数据块,导致全表扫描或部分失效。
-
509
-
2026-01-24 14:12:38
-
2026-01-24 14:58:02
- SQL 为什么索引顺序如此重要?
- 复合索引只支持最左前缀匹配,字段顺序不一致将导致索引失效,如INDEX(a,b,c)无法用于WHEREb=2;等值查询字段应靠左,范围查询后列不可用;ORDERBY或JOIN条件顺序与索引不一致会引发filesort或全表扫描。
-
601