MySQL 索引设计:最左前缀、覆盖索引与 EXPLAIN 的正确读法
索引不是「加得越多越快」。本文从联合索引的排序结构讲清最左前缀与范围条件中断,用 EXPLAIN 的 type、key、rows、Extra 四列判断索引是否真的生效,并列出索引失效的常见写法。
共 23 篇文章
索引不是「加得越多越快」。本文从联合索引的排序结构讲清最左前缀与范围条件中断,用 EXPLAIN 的 type、key、rows、Extra 四列判断索引是否真的生效,并列出索引失效的常见写法。
重渲染本身不是问题,被无关状态反复带动重渲染才是。本文给出用 Profiler 定位高开销组件的方法,并按收益从高到低排列状态下放、children 传递、memo 与 useMemo 的使用条件。
useEffect 的 bug 大多来自「回调捕获了旧值」,而不是依赖数组写少了。本文用定时器、请求竞态与函数依赖三个例子说明依赖数组的判定方法,并给出清理函数与 useCallback 的稳定写法。
页面卡不一定是 Vue 慢,多数是列表 key 写错、把大对象塞进响应式、或者在一个 computed 里做了太多计算。本文按「先定位再优化」的顺序,给出 DevTools 排查步骤与四个高频改法。
Composition API 让逻辑可以按功能抽成组合函数,但 ref 与 reactive 混用、watch 清理不彻底、跨组件共享状态随意放置,都会带来隐性 bug。本文用一个轮询组合函数说明状态该放哪一层、副作用何时必须清理。
两种合并方式的差别不在于历史好不好看,而在于冲突在什么时候解决、分叉要不要保留。本文用具体命令说明 squash、交互式 rebase 与 force-with-lease 的安全用法,并给出用 reflog 救回误删提交的完整流程。