mySql in 语句查询优化
有这么一条sql
UPDATE product set BuyerCount =BuyerCount+1 where ProductId in( SELECT ProductId from orderproductdetail where OrderId=2014042514163700856 );
在数据为几欠条的情况下耗时为20多秒。把这条语句拆分之后
SELECT ProductId from orderproductdetail where OrderId=2014042514163700856
耗时0.01秒 结果为:2012
UPDATE product set BuyerCount =BuyerCount+1 where ProductId in(2012)
耗时0.02秒。这就奇怪了,两个时间都很短,为啥放一起就那么长时间。
下面总结了三种优化方法:
UPDATE product p, orderproductdetail o set p.BuyerCount =p.BuyerCount+1 where p.ProductId=o.ProductId and o.OrderId=2014042514163700856; UPDATE product p INNER JOIN orderproductdetail o on p.ProductId=o.ProductId set p.BuyerCount =p.BuyerCount+1 where o.OrderId=2014042514163700856; UPDATE product set BuyerCount =BuyerCount+1 where ProductId in( SELECT ProductId from (SELECT ProductId from orderproductdetail where OrderId=2014042514163700856) as tttt );
执行结果如下:
[SQL] UPDATE product p, orderproductdetail o set p.BuyerCount =p.BuyerCount+1 where p.ProductId=o.ProductId and o.OrderId=2014042514163700856;
受影响的行: 1
时间: 0.053ms [SQL] UPDATE product p INNER JOIN orderproductdetail o on p.ProductId=o.ProductId set p.BuyerCount =p.BuyerCount+1 where o.OrderId=2014042514163700856;
受影响的行: 1
时间: 0.053ms [SQL] UPDATE product set BuyerCount =BuyerCount+1 where ProductId in( SELECT ProductId from (SELECT ProductId from orderproductdetail where OrderId=2014042514163700856) as tttt );
受影响的行: 1
时间: 0.072ms
mySql in 语句查询优化的更多相关文章
- Mysql语句查询优化
其实对Mysql查询语句进行优化是一件非常有必要的事情. 如何查看当前sql语句的执行效率呢? 1.建一张学生表 CREATE TABLE `student` ( `stu_id` ) NOT NUL ...
- MySQL的limit查询优化
MySQL的limit查询优化以下的文章主要是对MySQL limit查询优化的具体内容的介绍,我们大家都知道MySQL数据库的优化是相当重要的.其他最为常用也是最为需要优化的就是limit.MySQ ...
- PHP MySQL 预处理语句
PHP MySQL 预处理语句 预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下: 预 ...
- PHP MySQL -处理语句
PHP MySQL 预处理语句 预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下: 预 ...
- MySQL 常用语句大全
MySQL 常用语句大全 一.连接 MySQL 格式: mysql -h 主机地址 -u 用户名 -p 用户密码 1.例 1:连接到本机上的 MYSQL. 首先在打开 DOS 窗口,然后进入目录 my ...
- 自制小工具大大加速MySQL SQL语句优化(附源码)
引言 优化SQL,是DBA常见的工作之一.如何高效.快速地优化一条语句,是每个DBA经常要面对的一个问题.在日常的优化工作中,我发现有很多操作是在优化过程中必不可少的步骤.然而这些步骤重复性的执行,又 ...
- [转]MySQL查询语句执行过程详解
Mysql查询语句执行原理 数据库查询语句如何执行?语法分析:首先进行语法分析,对使用sql表示的查询进行语法分析,生成查询语法分析树.语义检查:检查sql中所涉及的对象以及是否在数据库中存在,用户是 ...
- php面试专题---MYSQL查询语句优化
php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...
- MySQL的语句执行顺序
MySQL的语句执行顺序 MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作.其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入 ...
随机推荐
- 180度\360度sg90舵机的使用及代码程序
大部资料都是在网上找到网友大神所共享的,在网上找了几种舵机的,刚接触有点懵,之后找得多了就理解了,想要控制一个硬件就要先了解这个硬件.这里有介绍180度舵机和360度舵机的具体使用,有网上大神的程序, ...
- 一份你可以在 <head> 里设置的列表
A list of everything that could go in the <head> of your document github 原地址:https://github.co ...
- 在微信小程序中绘制图表(part2)
本期大纲 1.确定纵坐标的范围并绘制 2.根据真实数据绘制折线 相关阅读:在微信小程序中绘制图表(part1)在微信小程序中绘制图表(part3) 关注我的 github 项目 查看完整代码. 确定纵 ...
- 浏览器视图层级中的“根”:<html>和<body>的属性研究
做前端开发的同学都会知道,每一个UI系统(比如IOS或Android)中都会有一个view hierarchy(视图层级)的概念,即所有的可视元素(大到一个页面,小到一个button)都在一个树形结构 ...
- 移动端调试工具weinre安装教程(java版)
先申明:本安装教程是基于java的jdk安装的,经过测试可以正常使用,基于nodejs的安装,小喵鼓弄了好几天也没有成功,如果哪位童鞋基于nodejs安装成功了,请联系小喵,小喵在这里先谢谢你了! 好 ...
- WebGL小姐姐教我学画画之起手式
初次接触WebGL,如有错误之处欢迎留言,共同学习进步. v WebGL的自画像 我,WebGL,全名Web Graphics Library,是为了让死宅程序猿们(摊手)能在浏览器上为所欲为的画女朋 ...
- java中如何创建自定义异常Create Custom Exception
9.创建自定义异常 Create Custom Exception 马克-to-win:我们可以创建自己的异常:checked或unchecked异常都可以, 规则如前面我们所介绍,反正如果是chec ...
- Python:爬取全国各省疫情数据并在地图显示
代码: import requests import pymysql import json from pyecharts import options as opts from pyecharts. ...
- sring框架的jdbc应用
xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http: ...
- IO流入门+简单案例实现
IO流 总结内容 1. IO流是什么 2. 字符流和字节流 3. File常用API(前面类型为返回类型) 4. 编码转换 5. IO流实现流程 6. 输入输出流简单实现 7. 输入输出流简单实现 总 ...