范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

盘点Sql中几个比较实用的小Tips

  来源 | AirPython(ID:AirPython)
  作者 | 星安果
  1. 前言
  工作中,我们经常需要编写 SQL 脚本,对数据库进行增、删、改、查,很少会考虑到 Sql 性能优化
  实际上,从性能角度考虑,有很多 Sql 关键字都有它们各自的使用场景;如果使用恰当,能大大地提升后端服务的响应效率
  下面以 Mysql 为例,罗列出几个比较实用的小 Tips
  2. union、union all、or
  union [all] 代表联合查询,即:将多个查询结果合并起来成一个结果并返回
  PS:union 联合查询针对每一个查询结果,必须保证列数量、列数据类型及查询顺序一致
  语法如下:
  # 以两张表的联合查询为例
  # table_one:表一
  # table_two:表二
  # 表一中的查询字段:table_one_field1,table_one_fileld2...
  # 表二种的查询字段:table_two_field1,table_two_field2...
  # 注意:表一、表二查询字段数目、字段类型、字段顺序应该保持一致
  select table_one_field1,table_one_fileld2...
  from table_one
  union [all]
  select table_two_field1,table_two_field2...
  from table_two;
  其中,union、union all、or 三者的区别如下:union
  表链接后会利用字段的顺序进行排序,以此筛选掉重复的数据行,最后再返回结果
  因此,当数据量很大时效率很低union all
  相比 union,union all 在表链接时不会删除重复的数据行,直接返回表联合后的结果
  因此,union all 执行效率要高很多,在不需要去重和排序时,更推荐使用 union allor
  or 用于 SQL where 子句中,SQL 脚本可读性更高,但是它会引起全表扫描,根本不走索引查询
  所以通常情况下,union [all] 查询会利用索引进行查询,执行效率要高于 or;但是当 or 条件中查询列相同,or 的执行效率要高于 union
  3. group by + having、where
  group by 分组查询,根据一个或多个列对结果集进行分组,一般配合聚合函数使用
  语法如下:
  # 查询字段:多个查询字段
  select 查询字段...,聚合函数...
  from table_one where 条件语句 group by 分组字段...having 分组条件;
  # 比如
  select red_num1,count(red_num1)
  from dlt where create_at>="2021-11-01" group by red_num1;
  其中,having 和 where 使用上有下面区别:where
  在 group by 分组前执行,将查询结果按照条件过滤数据
  需要注意的是,where 无法与聚合函数一起使用having
  只能配合 group by 使用,在分组之后执行,用于过滤满足条件的组
  需要注意的是,分组是一个耗时的操作,建议在分组前使用 where 对数据进行一次过滤,然后再进行分组
  比如,where 搭配 having 一起使用
  # 查询表dlt
  # 首先,使用where通过时间过滤数据
  # 然后,使用字段red_num1+group by对数据进行分组
  # 最后,使用having对分组后的数据再进行一次过滤
  select red_num1,count(red_num1)
  from dlt where create_at>="2021-10-01" group by red_num1 having count(red_num1)>=2;
  4. exists、in
  exists 用于 where 子句中,一般用于判断子查询中是否会返回数据,如果返回的数据不为空,则为 True,否则为 False
  PS:exists 也可以搭配 not 使用,查询出不满足子查询语句的数据
  语法如下:
  -- exists使用
  select *
  from 表一 where exists(select * from 表二 where 条件判断语句);
  -- not exists使用
  select *
  from 表一 where not exists(select * from 表二 where 条件判断语句);
  in 同样用于 where 子句中,筛选出某个表字段存在于多个值中的所有数据
  关键字 in 常见的 2 种使用方式如下:
  -- in 使用
  -- 方式一
  select *
  from 表名 where 字段 in(过滤字段1,过滤字段2,过滤字段3...);
  -- 方式二
  select *
  from 表名1
  where 字段1 in (select 字段2 from 表名2 where condition)
  由于 SQL 做子查询最优方案是小表驱动大表,对于 in 来说是子查询表驱动外表,当子查询表数据少于主表数据时推荐使用
  而 exists 是外表驱动子查询表,因此当外表数据少于子查询表时更推荐使用

如何用抖音创造价值,而不是耗费生命?说起抖音,有的人深恶痛绝,有的人爱不释手。有的人之所以痛恨,是因为如果你把抖音当作一个打发时间的工具,那是确实够打发时间的,晚上吃完饭躺在床上打开抖音,早上醒来躺在床上打开抖音,中打工注定逃脱不了996一群程序员搞了一个996ICU的东西,现在竟然成了热门,有时候想想还是蛮搞笑的,老板给员工发着工资,你只要按时的坐一个月,准时上下班,甚至再加加班就能拿到工资,而不用担负其他任何的软件工程毕业设计任务书(参考模板)毕业设计(论文)任务书一课题研究的内容与要求1研究前需对课题的研究背景意义以及系统在国内外的应用现状进行一定的调查了解。2通过文献资料调研,深入了解设计开发系统所需的方法和技术。3Web前端的一些开发规范(仅供参考)一文件命名规则文件名称统一用小写的英文字母数字和下划线的组合,其中不得包含汉字空格和特殊字符命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个文件的意义,二是云集,花生日记,每日一淘等中国电商传销大军正在路上现在的社会只要赚钱,其实无论什么模式都可以使用的,无论它是搞传销的还是帮助黑心医院拉客都是可以的,大家已经建立了一个嗜金如命的价值观,这不,据说云集要上市了,有个人评论曾经质疑云集阿里事件王某文不构成犯罪,张某或被当抢使吵吵闹闹的阿里事件算是尘埃落定,最终的警方通报告诉了大家的结果。就是阿里女上司领导不构成犯罪,但是违反了治安管理法,拘留15日。这个和之前的文章阿里女员工被侵害事件或可能反转!大家特斯拉维权事件反转?超速近40,老年人驾驶,刹车踩轻特斯拉事件经过不停的发酵,我感觉有点反转了。为什么这么说?因为之前特斯拉不肯妥协,于是遭遇了一帮媒体的炮轰,最后特斯拉终于顶不住了,半夜开始道歉。道歉完毕后,大家总算松了个口气,并10年来中国互联网巨头除了不停地捞钱,创造力基本是零写下这个标题的时候,我估计很多人要骂我了,因为大家会觉得,你敢说中国互联网的创造力是零,你是眼瞎了吗?你难道没有看到中国互联网的bat市值越来越高,还诞生了新的美团,拼多多,滴滴,最新中国十大寺庙排行榜,大家同意这个排名吧,欢迎补充第一名河南省洛阳市白马寺白马寺,中国第一古刹,世界著名伽蓝。位于河南省洛阳市,始建于东汉永平十一年(公元68年),是佛教传入中国后兴建的第一座寺院,也是中国日本朝鲜越南及欧美国家佛最新中国著名十大寺庙排名新鲜出炉,请看你家乡的有没有上榜?第一名河南省洛阳市白马寺白马寺,中国第一古刹,世界著名伽蓝。位于河南省洛阳市,始建于东汉永平十一年(公元68年),是佛教传入中国后兴建的第一座寺院,也是中国日本朝鲜越南及欧美国家佛快速回顾NVIDIA显卡发展史,看看小伙伴们都用过哪些显卡说到显卡第一个想到的就是英伟达(NVIDIA),今年6月份马上又迎来RTX3080Ti3070Ti,有人问了,到底这些年间NVIDIA总共发布了哪些显卡呢?下面就带领大家回顾一下英
念念不忘必有回响,4年前的华为老机型终于等来了鸿蒙OS众所周知,从2019年咱们中国的科技巨头华为被美国列入实体清单以来,遭受了巨大的打击,时至今日依然没有解除对华为的封锁。但是华为活下来了,不但扛住了美国的严厉打压,还在新产品如期而苹果称120Hz刷新率可以被充分利用,iPhone12让路新机跌至感人价在开发人员发现他们的应用程序目前无法为所有动画使用改进的120Hz刷新率后,人们对这是电池寿命限制还是错误感到困惑。苹果现在已经清除了它。值得一提的是,由于iPhone13新机的发刚刚收到消息,华为野心毕露,两大操作系统将取代微软和谷歌?众所周知,芯片操作系统这两大核心技术领域,一直都被美国科技巨头所垄断。谷歌的Android系统,高通的芯片,美国微软的Windows系统等等。我国众多的PC巨头手机巨头,无一例外都华为Mate50Pro曝光居中挖孔超曲面屏根据外媒透露,华为Mate50Pro已经曝光了,该机仍然采用超曲面屏设计,6。8英寸OLED屏幕,不过不再是左侧挖孔双摄,而是居中挖孔方案。华为Mate50Pro或将还有一块小副屏腾讯终于出手,搜狗正式合并腾讯是一家以产品起家,靠需求立足,以用户为生的企业,甚至,产品经理这个角色,就源生于腾讯所以,硬技术一直是腾讯心中的一颗尖刺而在当今的移动互联网时代,搜索并不像PC时代一样一城独高近年来北京是如何推动区块链电子签章的发展?2020年4月3日,北京市第十五届人民代表大会常务委员会第二十次会议通过并公布北京市优化营商环境条例,自2020年4月28日起施行。文件指出北京市要推行全部政务服务事项在网上全程办数字人民币重在场景落地图片来源于网络我国数字人民币的创新探索正不断深入。中国人民银行发布的中国数字人民币的研发进展白皮书显示,截至6月30日,数字人民币试点场景已超132万个。当前,数字人民币在101等联想9月新品发布会,小新Air14Plus小新Pro14性价比版登场这次属于版本发布会,严格来说,不属于新品发布会,都是之前的机型的新版本。但是就是这种新版本,可以说是联想的一步好棋4K价格段,小新Air14已经过时了,不说荣耀小米realme甚至iOS15更新正式版,影响iPhone13iOS15更新正式版,影响iPhone13关注公众号果粉机帮助果粉们快速成长9月27日,Apple正式向所有果粉们推送iOSiPadOS15正式版,版本号19A346,增加多项新功JEETAir2真无线蓝牙耳机精致小巧,轻享好音质随着越来越多的旗舰机型取消了3。5mm耳机插孔,蓝牙耳机逐渐替代了传统的有线耳机,特别是近年来真无线TWS蓝牙耳机的快速发展,无论是在产品音质,整体性能和佩戴舒适性等方面都有着很大新一代理想生产力工具如何定义?荣耀MagicBookV14体验在疫情席卷全球化的当下,尽管PC供应链仍存在零部件缺货问题,但全球PC市场依然保持了快速的增长,根据IDC最新调研报告预测,2021年全球PC出货量有望达到3。47亿台,同比增长1