插入关联表数据的优化方法
来源:互联网 发布:java log4j的使用 编辑:程序博客网 时间:2024/05/16 18:49
在应用开发的时候经常会使用到一对多、多对多之类的关联表,在插入数据比较多的时候可以考虑优化的方法。
举个简单的例子,有个用户表User和用户组表Group,两者之间通过关联表GroupUser关联多对多关系。
假设要在Group表中的id为2的组添加多个用户,id分别为2,3,4,5 通常在写入关联表的时候会使用下面的方法
SQL 查询:INSERT INTO groupUser VALUES ( 2, 2 )
插入的行数: 1 (查询花费 0.0435 秒)多次写入的时间自然就要成倍增加
现在考虑使用 insert select 方式写入关联表数据,提高速度。
[separator]
SQL 查询:INSERT INTO groupUser
SELECT a.id, b.id
FROM group a, User b
WHERE a.id =2 AND (b.id =2 OR b.id =3 OR b.id =4 OR b.id =5)插入的行数: 4 (查询花费 0.0540 秒)
显然在整体效率上提高不少。
再对SQL指令作下优化,可以改为
SQL 查询:INSERT INTO groupUser
SELECT a.id, b.id
FROM group a, User b
WHERE a.id =2 AND b.id IN ( 2, 3, 4, 5 )
插入的行数: 4 (查询花费 0.0344 秒)
使用in方法还有一个好处就是在生成SQL语句的时候比较方便,使用数组传递后implode就行了。
虽然只是一个小的改进,对于小量数据已经可以看出明显的改善,对于大批量数据效果优化效果似乎更佳。
- 插入关联表数据的优化方法
- 插入关联表数据的优化方法(转)
- 插入关联表数据的优化方法(转)
- 超大表关联的优化方法
- mysql 数据插入优化方法
- mybatis多对多关联,向关联表插入数据方法
- PHP MySQL批量插入数据的优化方法
- 表关联优化方法分享
- anroid Sqlite批量插入数据优化方法
- Mybatis 多对多关联表关联 如何插入关联表数据
- 多表关联优化方法分享
- SQL中两个关联表批量更新数据的方法
- SQL删除多表关联数据的三种方法
- SQL中两个关联表批量更新数据的方法
- SQL中两个关联表批量更新数据的方法
- 利用游标,插入新数据,解决id的关联问题
- postgresql优化数据的批量插入
- sqlite大量数据插入的优化
- 2012-07-16
- hdu 2462
- 英语词汇6
- Snmp网络管理协议
- 八章 札记--C++ primer 之旅
- 插入关联表数据的优化方法
- Android 4.1 Jelly Bean(果冻豆) 源码下载
- 编码工艺Coding Techniques)-命名和注释
- AMD处理器&VM8.0 完美安装Mac OS X 10.6.0 并成功升级至10.6.8 成功安装 Xcode 4.2
- Photoshop 图层合并机制之正片叠底
- MFC文件读写
- 验证日志增长
- AIX下调整文件系统大小
- 翠芳,也上~~Android编程入门经典