sql 语句 的一些优化小总结
2024-09-05 21:45:21
1.用exists 代替 in
原理:exists 是存在一个即返回一个 而in是做全盘扫描得出所有条件内的数据
(高效)
select *From member where age>18 and exists (select 'x' from Person where member.name =Person.name='cyao')
(低效)
select *From member where age>18 and name in (select name From Person where name='cyao')
2.用exists 代替DISITNCT
(高效)
select name ,age from mamber as d where exists (select 'x' from person as e where e.name = d.name)
(低效)
select Distinct name ,age from mamber as d ,person as e where e.name = d.name
3.尽量避免在select 后面 加*
4.尽量避免空值查询 所有的字段尽量有设置默认值。例如num列默认值为0;判断由where num is null -> where num=0
5.尽量使用数字型字段,例如status=1 激活 status=2 代表删除
6.避免频繁创建和删除临时表,以减少系统表资源的消耗。
最新文章
- 我的公司培训讲义(1):.NET开发规范教程
- 关于Http状态码
- 深入浅出SQL笔记1–数据和表
- Knockout 官网翻译
- iOS开发 QQ粘性动画效果
- ssh IP打通,hadoop启动失败
- 用尽洪荒之力解决Apple Store ipv6审核通关---linux服务器支持ipv6
- Linux内核中的Kconfig、xx.defconfig、xx.config、Makefile
- window下版本控制工具Git 客户端安装
- 获取机器本地的公网ip地址
- C# Log4Net使用指南(转)
- kvstore之mongodb为存储介质
- [笔记]cin、cout与scanf、printf的效率差异对比分析
- 新浪微博share分享接口请求奇葩错误
- 使用异步方法在XAML中绑定系统时间
- appium-desktop录制脚本二次开发,生成我司自动化脚本
- EXT 设置编辑框为只读
- iconfont图标应用
- 在Linux安装ASP.NET Core运行时环境
- A标签中 href 和 onclick用法、区别、优先级别