浏览 2649 次
锁定老帖子 主题:下面的两个sql语句那个效率更高
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-14
UPDATE stat_ip_20110912 a join ip_list b on a.ip>=b.startip and a.ip <=b.endip SET a.operator=b.type,a.province=b.province ; 第二个 UPDATE stat_ip_20110912 a,ip_list b SET a.operator=b.type,a.province=b.province where a.ip>=b.startip and a.ip <=b.endip b表是一个ip的基础表32w数据 a表是一个访问ip表每天50w数据 运行两个都需要的时间很长怎么优化谢谢 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-10-24
标准写法(为你的第二种):
UPDATE stat_ip_20110912 a,ip_list b SET a.operator=b.type,a.province=b.province WHERE a.ip>=b.startip and a.ip <=b.endip 关键是2张表用于关联的字段是否有索引可用,以及数据类型是否一致 建议索引字段及组合: stat_ip_20110912(ip) ip_list (startip,endip) 请提供执行计划信息: SELECT a.operator,a.province FROM stat_ip_20110912 a,ip_list b WHERE a.ip>=b.startip and a.ip <=b.endip\G #****************************************# MySQL技术及运维自动化网:www.mysqlops.com 新浪微博账号:http://weibo.com/mysqlops #****************************************# |
|
返回顶楼 | |