mysql表关联字段长度不一样_mysql优化sql案例,5.6版本的致命点之两表关联的字段类型相同的重要性...
时间大大的缩短:
但是这个还不是最优化的:后面又发现关联表那边有这样的一个语句:
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版本的致命点之两表关联的字段类型相同的重要性...相关推荐
- Mysql价格降低20%应该怎么写_mysql优化20条原则
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...
- Mysql价格降低20%应该怎么写_mysql优化建议20条
当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这 ...
- oracle字段长度大于3的值,sql语句查询字段长度大于6
sql语句怎么在一个数据库中查找拥有同一字段名的所有表 1.在Oracle中,这样写就可以解决了select column_name,table_name from user_tab_columns ...
- mysql排序显示行数的语句_MySQL中sql语句count(*),orderby,随机数据展示。
count(*)这么慢,我该怎么办? MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高: 而 InnoDB 引擎就麻烦了,它执行 count ...
- MySQL教程——3 中级篇(存储引擎、优化SQL步骤、索引的使用)
Mysql高级-day02 1. Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & ...
- mysql 修改字段长度 合并语句_mysql中利用sql语句修改字段名称,字段长度等操作...
1.修改字段的长度 语法: ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型(修改后的长度) 例子: 将字段的长度由10改为20 ALTER TABLE attence M ...
- mysql的终端窗口是什么意思_MySQL之终端Terminal(dos界面)管理数据库、数据表、数据的基本操作...
MySQL有很多的可视化管理工具,比如"mysql-workbench"和"sequel-pro-". 现在我写MySQL的终端命令操作的文章,是想强化一下自己 ...
- mysql删除表中的唯一索引吗_Mysql 使用sql删除同表中重复数据并加唯一索引
同一张表中,假设以两个字段做唯一业务,这两个字段分别为key1,key2, 则以这两个字段为唯一 DELETE tablename FROM tablename , ( SELECT min(id) ...
- mysql sql优化_MySQL优化SQL语句的步骤
我们在执行一条SQL语句的时候,如果我们想要知道这条SQL语句查询了哪些表,有没有使用索引,获取数据的时候遍历了多少行数据,我们可以通过EXPLAIN命令来查看这些执行信息,这些执行信息统称为执行计划 ...
最新文章
- 动态语言的灵活性是把双刃剑 -- 以Python语言为例
- .NET2.0抓取网页全部链接【月儿原创】
- 多线程2(常用的方法:join、interrupt、currentThread、isAlive、setDaemon...)
- c语言一对圆括号不能,C语言单元习题集
- 详解各种锁:CAS、共享锁、排它锁、互斥锁、悲观锁、乐观锁、行级锁、表级锁、页级锁、死锁、JAVA对CAS的支持、ABA问题、AQS原理
- linux开通vsftpd服务过程
- 什么是电源正激和反激? 正激和反激有什么区别特点?如何快速区分
- gzip和gunzip 解压参数
- c语言实验题数组逆序,【C语言】利用栈将数组中字符串逆序
- MyBatis-Plus_查询进阶05
- 小程序开发(3)-之wx.request封装
- 2021年陕西高考成绩单招查询时间,2021年陕西单招考试时间是什么时候,单招考试分数线是多少...
- phpredis报错信息:protocol error, got 'o' as reply type byte解决方案
- C语言移动营业厅程序设计,【程序设计论文】C语言教学的移动应用程序设计(共2486字)...
- 计算机简历中的附加信息怎么填,善用简历附加信息体现你的好
- 租房网开发时es使用8.x版本时相关知识点相对于视频教程用的es6.x的不同点(参考,可能不太完善)
- OpenLayers使用高德导航接口实现动画animate
- 主流Paas云平台架构设计思想
- C语言实验06_数学
- python爬取bili指定up主的视频