mysql sql常用优化
1 explain 输出执行计划,检查order by和where后边的字段是否建立索引
2 in() 中的列不应过多,not in 和 in()数据过多 都不再走索引,使用全表扫描,连续数值可以使用between 1 and 3
3 select 后边指定字段,少用select(*)
4 where 子句中避免is null /is not null
5 应尽量避免在 where 子句中使用 or
6 尽量用union all代替union
union和union all的差异主要是前者需要将结果集合并后再进行唯一性过滤操作,这就会涉及到排序,增加大量的CPU运算,加大资源消耗及延迟。当然,union all的前提条件是两个结果集没有重复数据。
7 模糊匹配like不要使用%xxx
8 limit 1和分页灵活使用
9 用连接查询代替子查询
10 小表驱动大表
- in 适用于左边大表,右边小表。
- exists 适用于左边小表,右边大表。
快,滋醒这个做梦的人,有糖尿病的往后靠靠哈,不要给他点甜头!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构