时间大大的缩短:

但是这个还不是最优化的:后面又发现关联表那边有这样的一个语句:

FROM np_order n left join web114_order_ledger wol on n.order_id=wol.order_id,

(SELECT *  FROM (SELECT MAX(og.order_goods_id) ogd,SUM(goods_info_num) gin FROM np_order_goods og GROUP BY og.order_id) t

LEFT JOIN np_order_goods ogs ON t.ogd=ogs.order_goods_id) nog

他这种写法可以等价于:

FROM np_order n left join web114_order_ledger wol on n.order_id=wol.order_id,

(SELECT og.order_id, og.goods_id, SUM(goods_info_num) gin

FROM np_order_goods og

GROUP BY og.order_id,og.goods_id) nog

这样子的一个写法 ,时间又少了6s:

还有select from 里面的子查询中有两条语句:

(SELECT bos.shopname FROM web114_bm_outline_shop bos WHERE bos.shopcode=(SELECT osi.shopcode FROM web114_order_shop_info osi WHERE n.order_id=osi.order_id LIMIT 0,1)) order_shopname,

(SELECT bos.isdn FROM web114_bm_outline_shop bos WHERE bos.shopcode=(SELECT osi.shopcode FROM web114_order_shop_info osi WHERE n.order_id=osi.order_id LIMIT 0,1)) order_shop_isdn,

这两条语句其实可以提到 from 后面 跟主表直接关联,也可以改成这样:

(SELECT bos.shopname FROM web114_bm_outline_shop bos ,web114_order_shop_info osi  WHERE bos.shopcode= osi.shopcode and  n.order_id=osi.order_id LIMIT 0,1) order_shopname,

(SELECT bos.isdn FROM web114_bm_outline_shop bos ,web114_order_shop_info osi WHERE bos.shopcode= osi.shopcode and  n.order_id=osi.order_id LIMIT 0,1) order_shop_isdn ,性能进一步提升:

,

当然还有其他部分的子查询可以进行再优化,这边也没需要优化到非得1s以内的,想要再优化,可以explain 进行分析

mysql表关联字段长度不一样_mysql优化sql案例,5.6版本的致命点之两表关联的字段类型相同的重要性...相关推荐

  1. Mysql价格降低20%应该怎么写_mysql优化20条原则

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  2. Mysql价格降低20%应该怎么写_mysql优化建议20条

    当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这 ...

  3. oracle字段长度大于3的值,sql语句查询字段长度大于6

    sql语句怎么在一个数据库中查找拥有同一字段名的所有表 1.在Oracle中,这样写就可以解决了select column_name,table_name from user_tab_columns ...

  4. mysql排序显示行数的语句_MySQL中sql语句count(*),orderby,随机数据展示。

    count(*)这么慢,我该怎么办? MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高: 而 InnoDB 引擎就麻烦了,它执行 count ...

  5. MySQL教程——3 中级篇(存储引擎、优化SQL步骤、索引的使用)

    Mysql高级-day02 1. Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & ...

  6. mysql 修改字段长度 合并语句_mysql中利用sql语句修改字段名称,字段长度等操作...

    1.修改字段的长度 语法: ALTER TABLE 表名 MODIFY COLUMN 字段名  数据类型(修改后的长度) 例子: 将字段的长度由10改为20 ALTER TABLE attence M ...

  7. mysql的终端窗口是什么意思_MySQL之终端Terminal(dos界面)管理数据库、数据表、数据的基本操作...

    MySQL有很多的可视化管理工具,比如"mysql-workbench"和"sequel-pro-". 现在我写MySQL的终端命令操作的文章,是想强化一下自己 ...

  8. mysql删除表中的唯一索引吗_Mysql 使用sql删除同表中重复数据并加唯一索引

    同一张表中,假设以两个字段做唯一业务,这两个字段分别为key1,key2, 则以这两个字段为唯一 DELETE tablename FROM tablename , ( SELECT min(id) ...

  9. mysql sql优化_MySQL优化SQL语句的步骤

    我们在执行一条SQL语句的时候,如果我们想要知道这条SQL语句查询了哪些表,有没有使用索引,获取数据的时候遍历了多少行数据,我们可以通过EXPLAIN命令来查看这些执行信息,这些执行信息统称为执行计划 ...

最新文章

  1. 动态语言的灵活性是把双刃剑 -- 以Python语言为例
  2. .NET2.0抓取网页全部链接【月儿原创】
  3. 多线程2(常用的方法:join、interrupt、currentThread、isAlive、setDaemon...)
  4. c语言一对圆括号不能,C语言单元习题集
  5. 详解各种锁:CAS、共享锁、排它锁、互斥锁、悲观锁、乐观锁、行级锁、表级锁、页级锁、死锁、JAVA对CAS的支持、ABA问题、AQS原理
  6. linux开通vsftpd服务过程
  7. 什么是电源正激和反激? 正激和反激有什么区别特点?如何快速区分
  8. gzip和gunzip 解压参数
  9. c语言实验题数组逆序,【C语言】利用栈将数组中字符串逆序
  10. MyBatis-Plus_查询进阶05
  11. 小程序开发(3)-之wx.request封装
  12. 2021年陕西高考成绩单招查询时间,2021年陕西单招考试时间是什么时候,单招考试分数线是多少...
  13. phpredis报错信息:protocol error, got 'o' as reply type byte解决方案
  14. C语言移动营业厅程序设计,【程序设计论文】C语言教学的移动应用程序设计(共2486字)...
  15. 计算机简历中的附加信息怎么填,善用简历附加信息体现你的好
  16. 租房网开发时es使用8.x版本时相关知识点相对于视频教程用的es6.x的不同点(参考,可能不太完善)
  17. OpenLayers使用高德导航接口实现动画animate
  18. 主流Paas云平台架构设计思想
  19. C语言实验06_数学
  20. python爬取bili指定up主的视频

热门文章

  1. 如何实现用拼音查询数据库字段
  2. android中文件下载
  3. 2021 CFA Program Level 1一级二级三级教材 原版书
  4. 开一家鞋店,就这么简单
  5. 复变函数知识点整理1-2
  6. 第一代计算机主要服务于科学计算和,第一代计算机主要服务于科学计算和商业数值类计算。...
  7. Android 时间 定位 图片水印,android图片加水印
  8. 图的遍历之深度优先搜索(DFS)
  9. 压缩打包介绍 gip压缩工具 bzip压缩工具 xz压缩工具
  10. 你知道甲骨家谱吗?关于甲骨家谱的历史是怎样的呢?