sql | leecode 1147 |即时事务配送II | sql 优化

news2024/11/17 9:48:21

sql 有时候还是挺有意思的,有时候不只是crud

下面来看一道sql 题,第一个题解能跑完,但是超时

在这里插入图片描述

浮躁的人总是很难看的进去,有时候孤单又在所难免,所以啊 要继续坚持,原来中学老师讲的那句,要耐住寂寞,是任何时候适用
首先要 确定一个用户是在首单完成即时订单的,然后统计所有用户

select round(order_date = customer_pred_delivery_date) / count(*) *100 , 2) as immediate_percentage
from Delivery as d
where (customer_id , order_date) in 
(select customer_id, min(order_date) from Delivery gtoup by customer_id);
# 用join 代替子查询
#  为什么join 会比多次 查询效率高呢?
#  join 会把多张表整合,然后一次扫描处理所有的表,而多次查询会进行多次扫描,多次IO操作

#可读性提高了,那么维护性也自然提高了。 使用join明显的可以清晰的表达查询意图和逻辑,易于阅读和理解
#然后扩展性也提高了,join 操作上面也讲了,可以方便添加更多的连接条件和连接表,实现更复杂的查询逻辑。
select round(sum(order_date) = customer_pref_delivery_date) / count(*) *100 ,2) as immediate_percentage
from Delivery as d 
join(select customer_id, min(order_date) as min_order_date from Delivery group by customer_id) as min_dates on d.customer_id = min_dates.customer_id and d.order_date = min_dates.min_order_date;

贴张图,讲一下常见都有哪些优化

在这里插入图片描述

# 优化sql 的常见方式有:
#1.选合适的字段属性,从分配的空间、到采用数值型数据替代文本数据,如省份、性别
#2.使用join 替代 子连接  原因上面也已经讲了。
#3.使用union 替代手动创建临时表
#4.事务,怎么理解呢?就像使用命令的时候  同时 && 必然前面出现意外后面的语句是无法执行的,当sql复杂起来,比如设计子查询、连接、联合等,把系列的sql语句用一条或者几条sql 处理 
BEGIN;
  INSERT   INTO   salesinfo   SET   customerid=14;
  UPDATE   inventory   SET   quantity =11   WHERE   item='book';
COMMIT;
begin 表示开始,commit 表示结束。
#5. 锁定表  又挺矛盾的,需要事务,但是又认为开销大,所以上表
尽管事务是维护数据库完整性的一个非常好的方法,但却因为它的独占性,有时会影响数据库的性能,尤其是在很大的应用系统中。由于在事务执行的过程中,数据库将会被锁定,因此其它的用户请求只能暂时等待直到该事务结束。如果一个数据库系统只有少数几个用户来使用,事务造成的影响不会成为一个太大的问题;但假设有成千上万的用户同时访问一个数据库系统,例如访问一个电子商务网站,就会产生比较严重的响应延迟。
#6.使用外键
锁定表的方法可以维护数据的完整性,但是它却不能保证数据的关联性。这个时候我们就可以使用外键。
#优化索引
#优化查询语句

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1476493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

arm服务器上部署kibana

1.首先需要从elasticsearch对应的kibana版本(arm) ​​​​​​Download Kibana Free | Get Started Now | Elastic 注意:选平台时切勿选错,linux aarch64,并选择elasticsearch对应的历史版本 2.可以通过rz命令上传压缩包至 linux 服务器进行解压,存放路径建议和e…

物联网通信协议介绍

为了方便,将物联网通信协议分为两大类,一类是接入协议,一类是通讯协议。接入协议一般负责子网内设备间的组网及通信;通讯协议主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通…

数据结构:排序算法+查找算法

一、概念 程序数据结构算法 1.算法的特性和要求 特性: 确定性(每次运行相同的输入都是同样的结果)、有穷性、输入、输出、可行性 设计要求: 正确性、高效率、低存储、健壮性、可读性 2.时间复杂度 3.常见排序算法的时间复杂…

K8S存储卷与PV,PVC

一、前言 Kubernetes(K8s)中的存储卷是用于在容器之间共享数据的一种机制。存储卷可以在多个Pod之间共享数据,并且可以保持数据的持久性,即使Pod被重新调度或者删除,数据也不会丢失。 Kubernetes支持多种类型的存储卷…

MyBatis 学习(二)之 第一个 MyBatis 案例

目录 1 配置 MyBatis 方式 1.1 XML 配置文件 1.2 Java 注解配置 1.3. Java API 配置 2 在 MySQL 中创建一张表 3 创建一个基于 Maven 的 JavaWeb 工程 4 编写 User 实体类 5 创建Mybatis全局配置文件 6 编写一个 DAO 或 Mapper 接口 7 编写 SQL 映射配置文件&#xf…

Vuepress的使用

介绍 将markdown静态资源转换成html。 动态资源的转换还有很多,为什么要使用Vuepress? 目录分析 项目配置 详情 具体配置请看文档 插件配置 vuepress-theme-vdoing 主题插件 npm install vuepress-theme-vdoing -D先安装依赖配置主题 使用vuep…

Android 架构MVI、MVVM、MVC、MVP

目录 一、MVC(Model-View-Controller) 二、 MVP(Model-View-Presenter) 三. MVVM(Model-View-ViewModel) 四. MVI(Model-View-Intent) 五.MVI简单实现 先简单了解一下MVC、MVP和…

5.WEB渗透测试-前置基础知识-常用的dos命令

内容参考于: 易锦网校会员专享课 上一篇内容:4.WEB渗透测试-前置基础知识-快速搭建渗透环境(下)-CSDN博客 常用的100个CMD指令 1.gpedit.msc—–组策略 2. sndrec32——-录音机 3. Nslookup——-IP地址侦测器 ,是一个…

Keepalived 双机热备基础知识

7.1 Keepalived 双机热备基础知识 Keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover) 和健康检查査(Health Checking)功能一一判断LVS 负载调度器、节点服务器的可用性,及时隔离并替 换为新的服务器,当故…

使用腾讯云go sdk 查询对象存储中最新文件

背景: 腾讯云账号下,有很多对象存储COS桶: 我现在想确认某一个对象存储桶的活跃程度,简单的来说。我想知道这个桶里面最后上传的一个文件是什么,以及它的上传时间戳。 本文将介绍如何使用腾讯云对象存储(…

iMazing3安全吗?好不好用?值不值得下载

一、安全性 iMazing在设计和开发过程中,始终把用户数据的安全性放在首位。它采用了多种先进的安全技术来确保用户数据在传输、备份和存储过程中的安全。 iMazing3Mac-最新绿色安装包下载如下: https://wm.makeding.com/iclk/?zoneid49816 iMazing3Wi…

森林监测VR虚拟情景再现系统更便利

AI人工智能技术已经逐渐渗透到各个领域,为我们的生活带来了诸多便利。在虚拟仿真教学领域,AI技术的应用也日益丰富,为虚拟情景交互体验带来了前所未有的好处。 提高VR虚拟情景的逼真度 通过深度学习和计算机视觉等技术,AI/VR虚拟现…

java008 - Java方法

1、方法概述 1.1 概念 将独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。 1.2 注意事项 方法必须先创建才能使用,该过程称为方法的定义方法创建好不能直接运行,需要手动使用才执行,该过程称为方法的调用 2、方…

基于RISC-V架构的通信DSP的设计以及在5G RedCap基带中的应用(五)-基于RISC-V的RedCap DSP在5G基带中的应用

4 基于RISC-V的RedCap DSP在5G基带中的应用 4.1 基带处理器的关键任务和性能需求 基带处理器是移动通信设备中的关键部件,负责处理无线信号,包括信号的接收、发送和处理。在5G通信系统中,基带处理器的关键任务和性能需求包括以下几个方面&a…

【网站项目】424学报稿件管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

面试数据库篇(mysql)- 11主从同步

原理 MySQL主从复制的核心就是二进制日志 二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。 复…

Vue 2 的核心模块和历史遗留问题以及vue3新特性

从下图你能看到,Vue 2 是一个响应式驱动的、内置虚拟 DOM、组件 化、用在浏览器开发,并且有一个运行时把这些模块很好地管理起来的框架。 vue 2 能把上面所说的这些模块很好地管理起来,看起来已经足够好了。不过事实真的如 此么?…

day01-HTML-CSS

一、Web 开发 1. 什么是 Web ? Web:全球广域网,也称为万维网(www,World Wide Web),能够通过浏览器访问的 网站。 2. Web 网站的开发模式 3. Web 标准 Web 标准也称为网页标准,由一系列的标准组成&#xff…

24计算机考研深大经验分享(计算机专业考研综合安排)

文章目录 背景科目选择高数选课一轮二轮冲刺阶段 线代一轮二轮 概率论计算机学科专业基础408数据结构计算机组成原理操作系统计算机网络总结 英语政治 末言 背景 首先贴一下初试成绩。这篇分享主要是给零基础的同学使用的,基础好的同学可以自行了解补充一下&#xf…

【论文阅读】微纳米气泡技术作为CO2-EOR和CO2地质储存技术的新方向:综述

Micro and nanobubbles technologies as a new horizon for CO2-EOR and CO2 geological storage techniques: A review 微纳米气泡技术作为CO2-EOR和CO2地质储存技术的新方向:综述 期刊信息:Fuel 2023 期刊级别:EI检索 SCI升级版工程技术1区…