![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL系列
mysql
hugoHH
这个作者很懒,什么都没留下…
展开
-
数据库系列(MySQL)—— MySQL优化之同时使用max/min和group by 的坑
在数据库操作中,有时候需要获取比如说某个对象的某一类数据中的最大值/最小值,例子如下select max('attr') from table group by attr2;此时会发现获取到的数据不是最大/最小的;问题根源: group by默认返回每一组的第一条数据(每一组的数据排序都是按默认顺序排序的),就算你添加order by作为排序也会发现不起作用。解决方案:select * from table a where a.attr = (select max('attr') from ta原创 2021-01-25 14:31:14 · 1726 阅读 · 0 评论 -
数据库系列(MySQL)—— MySQL优化之多表join,多个in或or查询的速率优化逻辑
今天在优化一个sql查询,因为是一个订单的查询,需要验证一些订单的查看权限,其中逻辑需要join到多个其他表格,同时也用到很多in和or,导致多表都是用到全表扫描,速率及其慢。比如订单中的商品的标签字段需要做过滤,下面模拟表格order(订单表),item(商品表),tag(标签表)一般的逻辑大致上是这样的select * from orderwhere (某些过滤语句)where tag.name not in (tags)left join item on item.tid = ord原创 2021-01-13 17:01:58 · 1941 阅读 · 0 评论 -
数据库系列(MySQL)—— MySQL优化之in方法自动过滤掉null值
昨天在开发中发现一个数据库的问题,在做数据库查询时,我有一个条件时这样的SELECT DISTINCT *FROM `a` LEFT JOIN `b` ON `a`.`type_id`=`b`.`type_id` LEFT JOIN `i` ON `a`.`tid`=`i`.`tid` LEFT JOIN `tag` ON `i`.`item_id`=`tag`.`item_id` LEFT JOIN `h` ON `a`.`fans_id`=`h`.`fans_id` LEFT J原创 2021-01-12 09:03:22 · 1209 阅读 · 0 评论