SQL连接查询保障效率的简易原则
来源:互联网 发布:机器人运动算法 编辑:程序博客网 时间:2024/05/16 04:48
连接查询是数据库操作中很常用的操作,也是最耗费资源的操作。提高连接查询的效率,对于整体的效率提高有很大的意义。实际使用发现连接操作确实需要做一些优化。
一、一些原则
看了一些网友的经验后,总结一下:
- 使用子查询减少连接的两张表的字段、记录数量。
- 建立视图,减少需要处理的字段、记录数量。
- 用于连接的字段建立索引。
- 连接方式优先选择内连接,外连接尽量不使用。
- 尽可能将记录少的表放在连接的左边,以减少先处理的记录数量。*
二、一些实践
需求,查询表1中的字段A和表2中字段B匹配的合并后的所有记录。
方案一:
方案一:
select wwz.cpa,wwz.epa,family.memberan,family.adate from family,wwz where wwz.[PN]=family.[pnraw] group by memberan
运行很慢,难以接受。因此,按照我的需求,选择了第2、3项进行了优化。
首先创建视图:
create view main_pn_cpa_epa as select cpa,epa,pn from wwz;
create view family_an_date_pnr as select memberan,adate,pnraw from family;
再建立索引:
create index index_family_pnr ON family(pnraw);
在此基础上可以使用:
方案二:
select cpa,epa,memberan,adate from main_pn_cpa_epa,family_an_date_pnr where main_pn_cpa_epa.[PN]=family_an_date_pnr.[pnraw];
方案三:
select cpa,epa,memberan,adate from main_pn_cpa_epa inner join family_an_date_pnr on( main_pn_cpa_epa.[PN]=family_an_date_pnr.[pnraw]);
测试
- 硬件环境:
- 处理器:Intel(R) Core(TM) i3 CPU M330 @ 2.13GHz 双核
- 内存:4.00 GB
- 软件环境:
- Python2.7
- Sqlite3
- 源表容量:
- 表1:10442记录,37字段
- 表2:8654记录,7字段
- 100次查询,并且取出
耗时对比
方案一方案二方案三1000min+15.21s15.59 s* 没有试过
0 0
- SQL连接查询保障效率的简易原则
- SQL连接查询保障效率的简易原则
- Oracle提高SQL查询效率,要注意的原则
- Oracle提高SQL查询效率,要注意的原则
- Oracle提高SQL查询效率,要注意的原则
- Select SQL查询效率优化原则
- SQL查询的效率
- SQL 查询的效率
- hive 连接查询sql对比效率
- SQL查询效率的讨论
- 提高SQL查询的效率
- 提高SQL的查询效率
- 提高SQL的查询效率
- 提高SQL的查询效率
- sql语句的优化分析之一查询语句中左连接和函数效率分析比较
- SQL的连接查询
- 【java】MyEclipse连接SQL server 2012简易信息查询窗体
- SQL 行转列查询的简易实现
- 使用Roslyn动态编译和执行
- css小技巧
- java 程序员前期要学的东西
- 根据输入值 让select 选中
- 基于动态树的权限管理
- SQL连接查询保障效率的简易原则
- 《程序员健康指南》作者Joe Kutner:在运动中工作
- Dynea brown film faced plywood from LongDa Wood in China / Vietnam / Malaysia lzba
- php变量
- 从B 树、B+ 树、B* 树谈到R 树
- 实习总结
- 计算机网络学习--tcp伪首部
- 要怎么阅读别人的代码,自己才能进步
- Programming Ruby读书笔记