当前位置: 首页 > news >正文

ClickHouse复杂查询单表亿级数据案例(可导出Excel)

通过本篇博客,读者可以了解到如何在 ClickHouse 中高效地创建和管理大规模销售数据。随机数据生成和复杂查询的示例展示了 ClickHouse 的强大性能和灵活性。掌握这些技能后,用户能够更好地进行数据分析和决策支持,提升业务洞察能力。

表结构准备

销售表

CREATE TABLE IF NOT EXISTS sales (id Int64,product_id Int64,quantity Int32,price Float64,timestamp DateTime,customer_id Int64,          -- 客户IDdiscount Float64 DEFAULT 0, -- 折扣total_amount Float64,       -- 总金额payment_method String,      -- 付款方式status String,              -- 订单状态shipping_address String,    -- 发货地址billing_address String,     -- 账单地址order_notes String,         -- 订单备注created_at DateTime,        -- 创建时间updated_at DateTime,        -- 更新时间shipping_cost Float64,      -- 运费tax Float64,                -- 税费order_source String,        -- 订单来源fulfillment_status String,   -- 履行状态product_name String,        -- 产品名称product_category String      -- 产品类别
) ENGINE = MergeTree()
ORDER BY timestamp;

数据准备

随机生成1亿数据(我用的2千万一次一次插入)

INSERT INTO sales (id, product_id, quantity, price, timestamp, customer_id, discount, total_amount, payment_method, status, shipping_address, billing_address, order_notes, created_at, updated_at, shipping_cost, tax, order_source, fulfillment_status, product_name, product_category) SELECTnumber AS id,rand() % 10000 AS product_id,round((rand() % 20) + 5) AS quantity,round((rand() % 1000) + 100, 2) AS price,now() - toIntervalDay(rand() % 3650) AS timestamp,rand() % 1000 AS customer_id,round(rand() % 50, 2) AS discount,round((quantity * price) * (1 - (discount / 100)), 2) AS total_amount,['credit_card', 'paypal', 'bank_transfer', 'cash', 'gift_card'][(rand() % 5) + 1] AS payment_method,['pending', 'completed', 'canceled', 'refunded'][(rand() % 4) + 1] AS status,concat('Shipping Address ', number) AS shipping_address,concat('Billing Address ', number) AS billing_address,concat('Order notes for order ', number) AS order_notes,now() - toIntervalDay(rand() % 3650) AS created_at,now() - toIntervalDay(rand() % 3650) AS updated_at,round((rand() % 100) + 10, 2) AS shipping_cost,round((rand() % 50) + 5, 2) AS tax,['website', 'mobile_app', 'third_party'][(rand() % 3) + 1] AS order_source,['not_fulfilled', 'fulfilled', 'partially_fulfilled'][(rand() % 3) + 1] AS fulfillment_status,concat('Product Name ', number) AS product_name,['electronics', 'clothing', 'home', 'toys', 'books'][(rand() % 5) + 1] AS product_category
FROM numbers(20000000)Query id: 1237aa3d-3596-4d76-ac1b-cd4854eaa7bd↖ Progress: 17.40 million rows, 139.19 MB (1.44 million rows/s., 11.48 MB/s.) (1.0 CPU, 415.10 MB RAM)███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                       86%

在生成数据时,我们可以看到CPU的占用率已经大于单核

 PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                              114260 clickho+  20   0   10.4g   1.7g 339104 S 140.9  11.4   3:36.99 clickhouse-serv

执行插入完毕后,查询当前数据条数

select count(*) from salesSELECT count(*)
FROM salesQuery id: aeb5a6f3-9776-4220-8f1a-abf1e5855943┌───count()─┐
1. │ 100101000 │ -- 100.10 million└───────────┘1 row in set. Elapsed: 0.001 sec.

较为复杂的指标查询语句

SELECTproduct_id,  -- 产品 IDSUM(quantity) AS total_quantity,  -- 总销售数量SUM(quantity * price) AS total_sales,  -- 总销售额AVG(price) AS average_price,  -- 平均价格COUNT(*) AS total_transactions,  -- 总交易次数MAX(price) AS max_price,  -- 最高价格MIN(price) AS min_price,  -- 最低价格SUM(quantity) / NULLIF(COUNT(*), 0) AS avg_quantity_per_transaction_count,  -- 每笔交易的平均数量SUM(quantity * price) / NULLIF(SUM(quantity), 0) AS avg_sales_per_unit,  -- 每单位的平均销售额SUM(quantity) / NULLIF(COUNT(DISTINCT timestamp), 0) AS avg_daily_sales,  -- 平均每日销售数量COUNT(DISTINCT timestamp) AS selling_days,  -- 销售天数SUM(quantity * price) / NULLIF(COUNT(DISTINCT timestamp), 0) AS avg_daily_sales_value,  -- 平均每日销售额SUM(quantity) / SUM(quantity * price) AS sales_conversion_rate,  -- 销售转化率COUNT(IF(price > 50, 1, NULL)) AS high_price_transactions,  -- 高价交易次数(价格 > 50)COUNT(IF(price <= 50, 1, NULL)) AS low_price_transactions,  -- 低价交易次数(价格 <= 50)SUM(quantity * price) / NULLIF(SUM(quantity), 0) AS sales_price,  -- 销售价格(SUM(quantity) / SUM(quantity * price)) * 100 AS sales_contribution_rate,  -- 销售贡献率COUNT(IF(quantity > 10, 1, NULL)) AS bulk_sales_transactions,  -- 大宗销售交易次数(数量 > 10)SUM(IF(timestamp >= (NOW() - INTERVAL 30 DAY), quantity, 0)) AS recent_sales_quantity,  -- 最近30天的销售数量SUM(IF(timestamp >= (NOW() - INTERVAL 30 DAY), quantity * price, 0)) AS recent_sales_value,  -- 最近30天的销售额AVG(IF(price > 50, price, NULL)) AS avg_high_price,  -- 高价商品的平均价格AVG(IF(price <= 50, price, NULL)) AS avg_low_price,  -- 低价商品的平均价格SUM(quantity) / NULLIF(COUNT(DISTINCT timestamp), 0) AS avg_quantity_per_day,  -- 每天的平均销售数量COUNT(IF(timestamp >= (NOW() - INTERVAL 7 DAY), 1, NULL)) AS recent_transactions,  -- 最近7天的交易次数SUM(IF(timestamp >= (NOW() - INTERVAL 7 DAY), quantity, 0)) AS recent_week_sales_quantity,  -- 最近7天的销售数量SUM(IF(timestamp >= (NOW() - INTERVAL 7 DAY), quantity * price, 0)) AS recent_week_sales_value,  -- 最近7天的销售额SUM(IF(price < 20, quantity, 0)) AS low_price_sales_quantity,  -- 低价销售数量(价格 < 20)SUM(IF((price >= 20) AND (price <= 50), quantity, 0)) AS mid_price_sales_quantity,  -- 中价销售数量(20 <= 价格 <= 50)SUM(IF(price > 50, quantity, 0)) AS high_price_sales_quantity,  -- 高价销售数量(价格 > 50)COUNT(IF(quantity > 1, 1, NULL)) AS multiple_items_transactions,  -- 多件商品交易次数(数量 > 1)COUNT(IF(price IS NULL, 1, NULL)) AS missing_price_transactions,  -- 缺失价格的交易次数SUM(IF(price IS NOT NULL, quantity * price, 0)) AS sales_with_price,  -- 有价格的销售额SUM(IF(price > 100, quantity, 0)) AS high_value_sales_quantity,  -- 高价值销售数量(价格 > 100)SUM(IF((price >= 20) AND (price <= 100), quantity, 0)) AS mid_value_sales_quantity,  -- 中价值销售数量(20 <= 价格 <= 100)SUM(IF(price < 20, quantity, 0)) AS low_value_sales_quantity,  -- 低价值销售数量(价格 < 20)COUNT(IF(quantity > 5, 1, NULL)) AS frequent_buyers,  -- 频繁购买者(数量 > 5)SUM(IF(timestamp >= (NOW() - INTERVAL 1 YEAR), quantity, 0)) AS yearly_sales_quantity,  -- 年度销售数量SUM(IF(timestamp >= (NOW() - INTERVAL 1 YEAR), quantity * price, 0)) AS yearly_sales_value  -- 年度销售额
FROM sales
GROUP BY product_id  -- 按产品 ID 分组
ORDER BY total_sales DESC;  -- 按总销售额降序排列

查询结果占用资源情况:

10000 rows in set. Elapsed: 2.439 sec. Processed 100.10 million rows, 2.40 GB (41.05 million rows/s., 985.12 MB/s.)
Peak memory usage: 93.66 MiB.

这个查询结果的输出信息包含了几个关键部分,下面逐一解释:

  1. 10000 rows in set

  • 这表示查询结果中返回了 10,000 行数据。这个数字是查询所处理的结果集的行数。
  1. Elapsed: 2.439 sec

  • 这是查询执行的总时间,表示从开始到结束所花费的时间为 2.439 秒。
  1. Processed 100.10 million rows, 2.40 GB

  • 这表示在执行查询时,数据库系统处理了 1 亿 10 万行数据,总共读取了 2.40 GB 的数据。这意味着虽然最终只返回了 10,000 行,但在计算这些结果时,数据库需要扫描大量的数据。
  1. (41.05 million rows/s., 985.12 MB/s.)

  • 这部分提供了处理速度的信息:
    • 985.12 MB/s.:表示数据读取的速度为每秒 985.12 MB。

    • 41.05 million rows/s.:表示查询处理的速度为每秒 4105 万行。

  1. Peak memory usage: 93.66 MiB

  • 这是查询执行过程中使用的最大内存量,表示查询的峰值内存使用为 93.66 MiB。

导出到Excel表格并附加表头

SELECTproduct_id,  -- 产品 IDSUM(quantity) AS total_quantity,  -- 总销售数量SUM(quantity * price) AS total_sales,  -- 总销售额AVG(price) AS average_price,  -- 平均价格COUNT(*) AS total_transactions,  -- 总交易次数MAX(price) AS max_price,  -- 最高价格MIN(price) AS min_price,  -- 最低价格SUM(quantity) / NULLIF(COUNT(*), 0) AS avg_quantity_per_transaction_count,  -- 每笔交易的平均数量SUM(quantity * price) / NULLIF(SUM(quantity), 0) AS avg_sales_per_unit,  -- 每单位的平均销售额SUM(quantity) / NULLIF(COUNT(DISTINCT timestamp), 0) AS avg_daily_sales,  -- 平均每日销售数量COUNT(DISTINCT timestamp) AS selling_days,  -- 销售天数SUM(quantity * price) / NULLIF(COUNT(DISTINCT timestamp), 0) AS avg_daily_sales_value,  -- 平均每日销售额SUM(quantity) / SUM(quantity * price) AS sales_conversion_rate,  -- 销售转化率COUNT(IF(price > 50, 1, NULL)) AS high_price_transactions,  -- 高价交易次数(价格 > 50)COUNT(IF(price <= 50, 1, NULL)) AS low_price_transactions,  -- 低价交易次数(价格 <= 50)SUM(quantity * price) / NULLIF(SUM(quantity), 0) AS sales_price,  -- 销售价格(SUM(quantity) / SUM(quantity * price)) * 100 AS sales_contribution_rate,  -- 销售贡献率COUNT(IF(quantity > 10, 1, NULL)) AS bulk_sales_transactions,  -- 大宗销售交易次数(数量 > 10)SUM(IF(timestamp >= (NOW() - INTERVAL 30 DAY), quantity, 0)) AS recent_sales_quantity,  -- 最近30天的销售数量SUM(IF(timestamp >= (NOW() - INTERVAL 30 DAY), quantity * price, 0)) AS recent_sales_value,  -- 最近30天的销售额AVG(IF(price > 50, price, NULL)) AS avg_high_price,  -- 高价商品的平均价格AVG(IF(price <= 50, price, NULL)) AS avg_low_price,  -- 低价商品的平均价格SUM(quantity) / NULLIF(COUNT(DISTINCT timestamp), 0) AS avg_quantity_per_day,  -- 每天的平均销售数量COUNT(IF(timestamp >= (NOW() - INTERVAL 7 DAY), 1, NULL)) AS recent_transactions,  -- 最近7天的交易次数SUM(IF(timestamp >= (NOW() - INTERVAL 7 DAY), quantity, 0)) AS recent_week_sales_quantity,  -- 最近7天的销售数量SUM(IF(timestamp >= (NOW() - INTERVAL 7 DAY), quantity * price, 0)) AS recent_week_sales_value,  -- 最近7天的销售额SUM(IF(price < 20, quantity, 0)) AS low_price_sales_quantity,  -- 低价销售数量(价格 < 20)SUM(IF((price >= 20) AND (price <= 50), quantity, 0)) AS mid_price_sales_quantity,  -- 中价销售数量(20 <= 价格 <= 50)SUM(IF(price > 50, quantity, 0)) AS high_price_sales_quantity,  -- 高价销售数量(价格 > 50)COUNT(IF(quantity > 1, 1, NULL)) AS multiple_items_transactions,  -- 多件商品交易次数(数量 > 1)COUNT(IF(price IS NULL, 1, NULL)) AS missing_price_transactions,  -- 缺失价格的交易次数SUM(IF(price IS NOT NULL, quantity * price, 0)) AS sales_with_price,  -- 有价格的销售额SUM(IF(price > 100, quantity, 0)) AS high_value_sales_quantity,  -- 高价值销售数量(价格 > 100)SUM(IF((price >= 20) AND (price <= 100), quantity, 0)) AS mid_value_sales_quantity,  -- 中价值销售数量(20 <= 价格 <= 100)SUM(IF(price < 20, quantity, 0)) AS low_value_sales_quantity,  -- 低价值销售数量(价格 < 20)COUNT(IF(quantity > 5, 1, NULL)) AS frequent_buyers,  -- 频繁购买者(数量 > 5)SUM(IF(timestamp >= (NOW() - INTERVAL 1 YEAR), quantity, 0)) AS yearly_sales_quantity,  -- 年度销售数量SUM(IF(timestamp >= (NOW() - INTERVAL 1 YEAR), quantity * price, 0)) AS yearly_sales_value,  -- 年度销售额AVG(IF(price IS NOT NULL, price, NULL)) AS avg_price,  -- 平均价格(排除 NULL)COUNT(DISTINCT customer_id) AS unique_customers,  -- 唯一客户数量COUNT(IF(quantity = 0, 1, NULL)) AS zero_quantity_sales,  -- 销售数量为零的交易次数SUM(IF(price IS NOT NULL AND quantity > 0, quantity * price, 0)) AS valid_sales_value  -- 有效销售额(价格不为 NULL 且数量 > 0)
FROM sales
GROUP BY product_id  -- 按产品 ID 分组
ORDER BY total_sales DESC  -- 按总销售额降序排列
INTO OUTFILE '/test1.csv'  -- 输出到 CSV 文件
FORMAT CSVWithNames;  -- CSV 格式包含列名

然后下载到Windows系统打开即可

 

相关文章:

ClickHouse复杂查询单表亿级数据案例(可导出Excel)

通过本篇博客&#xff0c;读者可以了解到如何在 ClickHouse 中高效地创建和管理大规模销售数据。随机数据生成和复杂查询的示例展示了 ClickHouse 的强大性能和灵活性。掌握这些技能后&#xff0c;用户能够更好地进行数据分析和决策支持&#xff0c;提升业务洞察能力。 表结构…...

ST-GCN模型实现花样滑冰动作分类

加入深度实战社区:www.zzgcz.com&#xff0c;免费学习所有深度学习实战项目。 1. 项目简介 本项目实现了A042-ST-GCN模型&#xff0c;用于对花样滑冰动作进行分类。花样滑冰作为一项融合了舞蹈与竞技的运动&#xff0c;其复杂的动作结构和多变的运动轨迹使得动作识别成为一个具…...

计算机网络基础--认识协议

目录 前言 一、IP地址与端口 二、网络协议 1.网络体系结构框架 2.网络字节序 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 计算机网络涉及非常广泛&#xff0c;这篇文章主要对计算机网络有个认识 提示&#xff1a;以下是本篇文章正文内容&#x…...

基本控制结构2

顺序结构 程序按照语句的书写次序顺序执行。 选择结构 判断选择结构又称条件分支结构&#xff0c;是一种基本的程序结构类型。 在程序设计中&#xff0c;当需要进行选择、判断和处理的时候&#xff0c;就要用到条件分支结构。 条件分支结构的语句一般包括if语句、if–else…...

php 平滑重启 kill -SIGUSR2 <PID> pgrep命令查看进程号

有时候我们使用nginx 大家都知道平滑重启命令: /web/nginx/sbin/nginx -s reload 但大家对php-fpm 重启 可能就是简单暴力的kill 直接搞起了 下面介绍一个sh 文件名保存为start_php.sh 来对php-fpm 进行平滑重启 #!/bin/bash# 检查 PHP-FPM 是否运行 if ! pgrep php-…...

实时美颜功能技术揭秘:视频美颜SDK与API的技术剖析

当下&#xff0c;用户希望在视频直播中呈现出最佳状态&#xff0c;这推动了视频美颜SDK和API的迅速发展。本文将深入剖析这项技术的核心原理、应用场景以及未来趋势。 一、实时美颜技术的基本原理 在实现这些效果的过程中&#xff0c;视频美颜SDK通常会使用以下几种技术&…...

word2vector训练代码详解

目录 1.代码实现 2.知识点 1.代码实现 #导包 import math import torch from torch import nn import dltools #加载PTB数据集 &#xff0c;需要把PTB数据集的文件夹放在代码上一级目录的data文件中&#xff0c;不用解压 #批次大小、窗口大小、噪声词大小 batch_size, ma…...

Python的风格应该是怎样的?除语法外,有哪些规范?

写代码不那么pythonic风格的&#xff0c;多多少少都会让人有点难受。 什么是pythonic呢&#xff1f;简而言之&#xff0c;这是一种写代码时遵守的规范&#xff0c;主打简洁、清晰、可读性高&#xff0c;符合PEP 8&#xff08;Python代码样式指南&#xff09;约定的模式。 Pyth…...

net core mvc 数据绑定 《1》

其它的绑定 跟net mvc 一样 》》MVC core 、framework 一样 1 模型绑定数组类型 2 模型绑定集合类型 3 模型绑定复杂的集合类型 4 模型绑定源 》》》》 模型绑定 使用输入数据的原生请求集合是可以工作的【request[],Querystring,request.from[]】&#xff0c; 但是从可读…...

python为姓名注音实战案例

有如下数据&#xff0c;需要对名字注音。 数据样例&#xff1a;&#x1f447; 一、实现过程 前提条件&#xff1a;由于会用到pypinyin库&#xff0c;所以一定得提前安装。 pip install pypinyin1、详细代码&#xff1a; from pypinyin import pinyin, Style# 输入数据 names…...

MATLAB中的艺术:用爱心形状控制坐标轴

在MATLAB中&#xff0c;坐标轴控制是绘图和数据可视化中的一个重要方面。通过精细地管理坐标轴&#xff0c;我们不仅可以改善图形的视觉效果&#xff0c;还可以赋予图形更深的情感寓意。本文将介绍如何在MATLAB中使用坐标轴控制来绘制一个爱心形状&#xff0c;并探讨其背后的技…...

基于mybatis-plus创建springboot,添加增删改查功能,使用postman来测试接口出现的常见错误

1 当你在使用postman检测 添加和更新功能时&#xff0c;报了一个500错误 查看idea发现是&#xff1a; Data truncation: Out of range value for column id at row 1 通过翻译&#xff1a;数据截断&#xff1a;表单第1行的“id”列出现范围外值。一般情况下&#xff0c;出现这个…...

Java:Object操作

目录 1、Object转List对象2、Object转实体对象 1、Object转List对象 List<User> userList MtUtils.ObjectToList(objData, User.class);/*** Object对象转 List集合** param object Object对象* param clazz 需要转换的集合* param <T> 泛型类* return*/ public s…...

Java-并发基础

启动线程的方式 只有&#xff1a; 1、X extends Thread;&#xff0c;然后X.start 2、X implements Runnable&#xff1b;然后交给Thread运行 有争议可以可以查看 Thread源码的注释&#xff1a; There are two ways to create a new thread of execution.Callable的方式需要…...

速盾:网页游戏部署高防服务器有什么优势?

在当前互联网发展的背景下&#xff0c;网页游戏的市场需求不断增长&#xff0c;相应地带来了对高防服务器的需求。高防服务器可以为网页游戏部署提供许多优势&#xff0c;下面就详细介绍一下。 第一&#xff0c;高防服务器具有强大的抗DDoS攻击能力。DDoS攻击是目前互联网上最…...

【从0开始自动驾驶】ros2编写自定义消息 msg文件和msg文件嵌套

【从0开始自动驾驶】ros2编写自定义消息 msg文件和msg文件嵌套 详细解答和讨论请私信在工作空间内新建一个功能包在msg内创建对应的msg文件创建名为TestMsg.msg的文件创建名为TestSubMsg.msg的文件&#xff08;在前一个msg文件中引用&#xff09;修改CmakeList.txt修改package.…...

docker 部署 Seatunnel 和 Seatunnel Web

docker 部署 Seatunnel 和 Seatunnel Web 说明&#xff1a; 部署方式前置条件&#xff0c;已经在宿主机上运行成功运行文件采用挂载宿主机目录的方式部署SeaTunnel Engine 采用的是混合模式集群 编写Dockerfile并打包镜像 Seatunnel FROM openjdk:8 WORKDIR /opt/seatunne…...

【易上手快捷开发新框架技术】nicegui标签组件lable用法庖丁解牛深度解读和示例源代码IDE运行和调试通过截图为证

传奇开心果微博文系列 序言一、标签组件lable最基本用法示例1.在网页上显示出 Hello World 的标签示例2. 使用 style 参数改变标签样式示例 二、标签组件lable更多用法示例1. 添加按钮动态修改标签文字2. 点击按钮动态改变标签内容、颜色、大小和粗细示例代码3. 添加开关组件动…...

从HarmonyOS Next导出手机照片

1&#xff09;打开DevEco Studio开发工具 2&#xff09;插入USB数据线&#xff0c;连接手机 3&#xff09;在DevEco Studio开发工具&#xff0c;通过View -> Tool Windows -> Device File Browser打开管理工具 4&#xff09;选择storage -> cloud -> 100->fi…...

[Docker学习笔记]Docker的原理Docker常见命令

文章目录 什么是DockerDocker的优势Docker的原理Docker 的安装Docker 的 namespaces Docker的常见命令docker version:查看版本信息docker info 查看docker详细信息我们关注的信息 docker search:镜像搜索docker pull:镜像拉取到本地docker push:推送本地镜像到镜像仓库docker …...

【ESP 保姆级教程】小课设篇 —— 案例:20240507_esp01s+UNO的智能浇水系统

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2024-09-30 ❤️❤️ 本篇更新记录 2023-09-30 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…...

如何设置MySQL分布式架构主键ID,为什么不能使用自增ID或者UUID做主键?

MySQL分布式架构主键ID的设置方法 雪花算法&#xff08;Snowflake&#xff09; 原理&#xff1a;雪花算法是一种生成分布式唯一ID的算法。它由64位二进制数组成&#xff0c;结构如下&#xff1a;1位符号位&#xff08;固定为0&#xff09; 41位时间戳&#xff08;表示从一个固…...

服务器虚拟化详解

服务器虚拟化详解 服务器虚拟化是一种将物理服务器资源转化为虚拟服务器资源的技术&#xff0c;它允许在一台物理服务器上运行多个虚拟服务器&#xff0c;每个虚拟服务器都拥有独立的操作系统、应用程序和资源配置。这种技术极大地提高了服务器的利用率、灵活性和可扩展性&…...

医疗陪诊APP开发实战:从互联网医院系统源码开始

本文将从互联网医院系统源码出发&#xff0c;深入探讨医疗陪诊APP的开发实战。 一、从互联网医院系统源码入手 开发医疗陪诊APP的基础在于互联网医院系统的源码。互联网医院系统通常包括以下几个模块&#xff1a; 1.用户管理&#xff1a;用户注册、登录、信息管理等功能。 …...

jenkins 构建报错ERROR: Error fetching remote repo ‘origin‘

问题描述 修改项目的仓库地址后&#xff0c;使用jenkins构建报错 Running as SYSTEM Building in workspace /var/jenkins_home/workspace/【测试】客户端/client-fonchain-main The recommended git tool is: NONE using credential 680a5841-cfa5-4d8a-bb38-977f796c26dd&g…...

初识C#(三)- 数组

我有17栋楼&#xff0c;在不同地域&#xff0c;都是不同价格租出去给不同的人~ 文章目录 前言一、数组1.1 我有17栋楼 - 数组的声明1.2 包租公&包租婆 - 数组赋值1.3 每个月都要交租的苦逼租客 - 数组的使用 二、字符串2.1 字符串的使用方法 总结 前言 本篇笔记重点描述C#…...

黑马智数Day3

渲染基础Table列表 封装接口&#xff1a; export function getCardListAPI(params) {return request({url: /parking/card/list,params}) } 具体实现&#xff1a; import { getCardListAPI } from /apis/cardexport default {data() {return {// 请求参数params: {page: 1,pa…...

【Java】再一次踩了整数溢出的坑

【Java】再一次踩了整数溢出的坑 一、起因原题示例 1示例 2提示 我的代码提交结果 二、思考修改后的代码如下 三、知识点1. int m l ((r - l) / 2)解释 2. if (m < x / m)解释 四、结尾 一、起因 我在做【力扣】69.x 的平方根 一题的时候&#xff0c;明明觉得逻辑没问题&…...

Windows开发工具使用技巧大揭秘:让编码效率翻倍的秘籍!

【ACM出版|厦大主办|EI稳定检索】第五届计算机科学与管理科技国际学术会议&#xff08;ICCSMT 2024&#xff09;_艾思科蓝_学术一站式服务平台 更多学术会议请看&#xff1a;学术会议-学术交流征稿-学术会议在线-艾思科蓝 目录 引言 1. 快捷键大全&#xff1a;加速你的编码…...

CSS外边距

元素的外边距&#xff08;margin&#xff09;是围绕在元素边框以外&#xff08;不包括边框&#xff09;的空白区域&#xff0c;这片区域不受 background 属性的影响&#xff0c;始终是透明的。 为元素设置外边距 默认情况下如果不设置外边距属性&#xff0c;HTML 元素就是不会…...

网站你的后台管理系统用什么做/职业培训热门行业

在突发大量内存的请求期间&#xff0c;哪些工具或最佳实践可用于在Java服务中正常降级服务&#xff1f; 有问题的应用程序是多线程的。 处理每个请求所需的工作量可能相差很大&#xff0c;并且不容易拆分和并行化。我很担心编写与堆使用和GC有关的应用程序级代码&#xff0c;但…...

宜春网站制作/seo优化快速排名技术

本文主要内容&#xff1a;前言DBSCAN聚类算法参数选择DBSCAN算法迭代可视化展示常用评估方法&#xff1a;轮廓系数用Python实现DBSCAN聚类算法一、前言去年学聚类算法的R语言的时候&#xff0c;有层次聚类、系统聚类、K-means聚类、K中心聚类&#xff0c;最后呢&#xff0c;被D…...

猪八戒里面做网站骗子很多/百度关键词seo推广

CQ?Custom queue? 分类&#xff1a;子队列个数&#xff1a;1 ~ 16&#xff08;0表示System Queuing&#xff0c;主要用于单独发送数据流&#xff09;&#xff0c;即是1个优先子队列(PQ)和16个公平子队列&#xff0c;16个子队列轮询调度 加队&#xff1a;自定义加队&#xff0…...

建站公司推广/百度快速排名工具

字符串转换为数字异常 当试图将一个String转换为指定的数字类型&#xff0c;而该字符串确不满足数字类型要求的格式时&#xff0c;抛出该异常.如现在讲字符型的数据“123456”转换为数值型数据时&#xff0c;是允许的。 但是如果字符型数据中包含了非数字型的字符&#xff0c;如…...

wordpress仿虎嗅/关键词seo优化

传输层&#xff08;TCP/IP、UDP&#xff09;&#xff1a;向用户提供可靠的端到端&#xff08;End-to-End&#xff09;服务传输层向高层屏蔽了下层数据通信的细节应用层&#xff08;HTTP&#xff09;:为应用软件提供很多服务构建于TCP协议之上屏蔽网络传输相关细节HTTP三次握手&…...

公司网站选择什么空间/免费代理浏览网页

大臣的旅费 时间限制&#xff1a;1.0s 内存限制&#xff1a;256.0MB问题描述很久以前&#xff0c;T王国空前繁荣。为了更好地管理国家&#xff0c;王国修建了大量的快速路&#xff0c;用于连接首都和王国内的各大城市。 为节省经费&#xff0c;T国的大臣们经过思考&#xff…...