MySQL如何解决幻读?
目录
一、什么是幻读?
1.1 幻读的定义
1.2 幻读的示例
1.3 幻读产生的原因?
1.4?读已提交(Read Committed)
1.4.1 确定事务等级
1.4.2 非锁定读取
准备
示例
结论
1.4.3 锁定读取
准备
示例
分析
结论
1.5?可重复读(Repeatable Read)
1.5.1 确定事务等级
1.5.2 非锁定读取
准备
示例
结论
1.5.3 锁定读取
准备
示例
分析
结论
二、怎么解决幻读?
2.1 提高事务隔离等级
2.2 间隙锁(Gap Locking)
三、间隙锁
3.1 定义
3.2 工作原理
无间隙锁
有间隙锁
3.3?间隙锁的类型
范围查询
相等查询
参考资料
一、什么是幻读?
1.1 幻读的定义
**幻读(Phantom Read)**是数据库事务中的一种并发问题,指的是在一个事务执行过程中,另一个事务插入、删除或修改了符合查询条件的记录,导致前一个事务读取到不同的数据集,从而产生“幻觉”般的读操作。
1.2 幻读的示例
具体来说,事务A执行过程中,事务B插入或者修改了记录,导致事务A在相同查询条件下读取到的结果发生了改变。
假设有用户表users,包含列username、password、state。
1.事务A,查询所有状态启用的用户
select count(id) from users where state=1;
2.事务B,插入新用户,state=1
insert into users(username, password, state) values('test11', 123456, 1);
3.事务A,再次执行相同的sql
select count(id)?from users where state=1;
事务A两次查询,得到了不同的结果。
1.3 幻读产生的原因?
1.对表进行了插入或删除
2.事务隔离等级
**幻读(Phantom Read)**通常在较低的事务隔离等级中产生(如 读已提交(READ COMMITTED)、可重复读(REPEATABLE READ))。
读已提交(Read Committed):可以读取到已提交的记录,但无法保证查询过程中数据不被改变,因此会发生幻读;
可****重复读(Repeatable Read):可以保证事务中多次查询的结果一致,但仍然可能出现幻读,因为在非锁定读取时,允许新记录的插入(即事务 A 查询的范围可能会变化)。
两种隔离等级下,产生幻读的情况看下文具体示例。
1.4****读已提交(Read Committed)
1.4.1 确定事务等级
查看当前事务隔离等级
SELECT @@transaction_isolation;
将事务隔离等级设为【读已提交】
#设置事务隔离等级
SET SESSION TRANSACTION ISOLATION LEVEL {level};
#{level}可选项::
#读未提交: READ UNCOMMITTED·
#读已提交: READ COMMITTED
#可重复读: REPEATABLE READ
#可串行化: SERIALIZABLE
1.4.2 非锁定读取
准备
准备一组数据,进行以下测试:事务A执行查询,事务B插入一条记录,事务A再次执行查询。
示例
1.事务A执行查询
select * from tmp where id>=2;
2.事务B插入数据,并提交
insert into `tmp`(`id`,`value`) values (4, 'dd');
3.事务A再次执行查询
结论
事务A两次查询结果不一致,可以读取到事务B已提交的记录,出现【幻读】
1.4.3 锁定读取
准备
准备一组数据,进行以下测试:事务A执行查询,事务B插入一条记录,事务A再次执行查询。
示例
1.事务A进行锁定读取
select * from tmp where id >= 4 for update;
2.事务B,在间隙插入数据,并提交
insert into `tmp`(`id`,`value`) values (5, 'dd');
3.事务A再次执行查询,两次读取结果不一致,发现间隙并没有锁住
并且事务B插入的行已经落库。
分析
然后我们看MySQL文档解释
意思就是,在【读已提交】隔离等级下,针对锁定读取(共享锁or排它锁)、UPDATE语句和DELETE语句,innodb只锁定索引到的记录,锁定记录的前后都能插入新记录。也就说“间隙”并没有被锁住。
再看【间隙锁】这边的解释,间隙锁在读已提交隔离等级下,在查询和索引扫描被禁用了。
结论
虽然使用了锁定读取,但读已提交(Read Committed)下,幻读依然存在。
1.5可重复读(Repeatable Read)
1.5.1 确定事务等级
查看当前事务隔离等级
?SELECT @@transaction_isolation;
1.5.2 非锁定读取
准备
准备一组数据,进行以下测试:事务A执行查询,事务B插入一条记录,事务A再次执行查询。
示例
1.事务A执行查询
select * from tmp where id>=4;
2.事务B插入一条记录, 并commit
insert into `tmp`( `id`, `value` ) values (5, 'dd');
3.事务A再次执行查询
select * from tmp where id>=4;
事务B执行commit后,由于事务隔离等级缘故,事务A再次查询,结果不影响,具备可重复读特性;事务A结束后,再次查询多了一条数据(5, ‘dd’)。
结论
在可重复读(Repeatable Read)隔离等级下,事务内部具备可重复读特性; 但由于“间隙”并未锁住,非锁定读取会出现“幻读”。
1.5.3 锁定读取
准备
准备一组数据,进行以下测试:事务A执行查询,事务B插入一条记录,事务A再次执行查询。
示例
事务A执行查询
select * from tmp where id>=4 for update;
事务B插入一条记录
insert into `tmp`( `id`, `value` ) values (5, 'dd');
这时,发现插入操作被阻塞了。
分析
我们看一下执行的查询语句
select * from tmp where id>=4 for update;
- Id=4所在的行
- Id=4与 id=6之间的间隙
- Id=6所在的行
- Id=6之后的间隙
这就意味着,在间隙插入记录会被阻止,直到事务A结束。
共享锁与示例的排它锁相同,都是通过阻止其他会话变更,来避免对当前会话的影响。
UPDATE语句、DELETE语句与锁定读取(Locking Reads)同理,在执行时,会根据使用的查询条件进行加锁:
- 相等(=、in):InnoDB只锁定找到的索引记录
- 范围(BETWEEN、>、<):InnoDB锁定扫描的索引范围
要注意的是,对于使用唯一索引的语句,完全没必要进行加锁。
注:
我们知道,默认情况下,MySQL是在autocommit开启的状态下运行。开启事务(START TRANSACTION)后,自动提交模式(autocommit)会隐式禁用,所有的纯SELECT语句会被转化成SELECT…LOCK IN SHARE MODE, 但是如果想要锁住间隙或是锁住索引记录的话,需要显示触发锁定行为。
结论
在可重复读(Repeatable Read)隔离等级下,针对锁定读取(共享锁or排它锁)、UPDATE语句和DELETE语句,不会出现“幻读”。
二、怎么解决幻读?
2.1 提高事务隔离等级
使用可串行化(Serializable),提事务隔离等级来避免。在可串行化隔离等级下,数据库会对查询和写进行加锁,确保事务的完全顺序执行,但是并发效率低下。
2.2 间隙锁(G****ap Locking)
间隙锁是加在索引记录之间间隙的锁,又或者是在索引区间第一条记录之前、或最后一条记录之后。
示例:
select * from users where age between 10 and 30FOR UPDATE;
age(10-30)范围内所有现有值之间的间隙都被锁定,防止其他事务将值等于15插入列age中,无论该列中是否已有该值。
三、间隙锁
3.1 定义
**间隙锁(Gap Lock)**是一种数据库锁定机制,常见于支持行级锁的数据库(如 MySQL 的 InnoDB 存储引擎)中,主要用于解决并发事务中的“幻读”问题。
3.2 工作原理
假定有数据表
±—±------+
| id | title |
±—±------+
| 1 | aa |
| 2 | bb|
| 3 | cc|
±—±------+
无间隙锁
事务A查询id > 2 的记录并锁定这条记录,然后事务B插入一条id=4的新纪录,事务A再次查询时会得到不同的结果集。
有间隙锁
事务A执行查询 id > 2时,这条查询会锁定 id > 2 的记录、所有行之间的间隙。
3.3****间隙锁的类型
范围查询
当事务执行范围查询(如BETWEEN、>、<等)时,数据库会在查询范围内加上间隙锁。
例如:
select * from `tmp` where `id` > 5 for update;
可重复读(Repeatable Read)隔离等级下,可能会锁定 id >5 的所有间隙.
相等查询
当事务执行相等查询(如 = )时,数据库会锁定对应的索引记录。如果索引记录不存在,则会锁定对应的间隙,防止其他事务插入重复的记录。
示例:
±—±------+
| id | value |
±—±------+
| 2 | aa |
| 4 | bb |
| 6 | cc |
±—±------+
事务A, 执行查询, 锁住id=5的间隙
select * from tmp where id=5 for update;
事务B, 尝试在id=5插入数据
insert into `tmp`( `id`, `value` ) values ( 5, 'bb' );
发现事务B,在事务A未结束的情况下,一直被阻塞直至超时
参考资料
MySQL数据库事务隔离等级:The InnoDB Engine: Transaction Isolation Levels
InnoDB一致性非锁定读取:The InnoDB Engine | Consistent Nonlocking Reads
InnoDB幻影行(幻读):The InnoDB Engine | Phantom Rows
InnoDB间隙锁:The InnoDB Engine | Gap locking
相关文章:
MySQL如何解决幻读?
目录 一、什么是幻读? 1.1 幻读的定义 1.2 幻读的示例 1.3 幻读产生的原因? 1.4?读已提交(Read Committed) 1.4.1 确定事务等级 1.4.2 非锁定读取 准备 示例 结论 1.4.3 锁定读取 准备 示例 分析 结论 1.5?可重…...
RabbitMQ的脑裂(网络分区)问题
问题描述: Mnesia reports that this RabbitMQ cluster has experienced a network partition. There is a risk of losing data 一、什么是MQ脑裂? 网络分区 如果另一个节点在一段时间内(默认为 60 秒)无法与其联系࿰…...
【网络安全 | 漏洞挖掘】价值$40000:从路径遍历升级至RCE
未经许可,不得转载。 文章目录 路径遍历RCE路径遍历 在进行目标侦查和端口扫描时,我发现了一个使用 8443 端口的子域名:http://admin.target.com:8443。许多人可能会忽略返回 404 的子域名,但我并没有。 对 http://admin.target.com:8443/FUZZ 进行模糊测试时,我发现了一…...
程函方程的详细推导
以下是基于非均匀介质弹性波方程(无纵波假设)推导程函方程的详细过程,完整考虑纵波(P 波)和横波(S 波)的耦合效应:...
AD(Altium Designer)三种方法导入图片
目录 1、脚本方式导入图片 1.1 准备脚本文件和导入图片 1.2 运行脚本 1.3 导入文件 1.4 选中文件 2.5 运行 2.6 导入图片 2.7 选择图片 2.8 转换 2.9 退出 2.10 联合 2.11 确认 2.12 调整大小 2.13 复制 2.14 粘贴 2、图片直接导入图片 2.1点击放置 2.2 图片…...
fpga助教面试题
第一题 module sfp_pwm( input wire clk, //clk is 200M input wire rst_n, input wire clk_10M_i, input wire PPS_i, output reg pwm ) reg [6:0] cunt ;always (posedge clk ) beginif(!rst_n)cunt<0;else if(cunt19) //200M是10M的20倍cunt<0;elsecunt<cunt1;…...
问题记录汇总
记录一些问题 如何分析错误帧问题-CSDN博客...
安全问答—安全的基本架构
前言 将一些安全相关的问答进行整理汇总和陈述,形成一些以问答呈现的东西,加入一些自己的理解,欢迎路过的各位大佬进行讨论和论述。很多内容都会从甲方的安全认知去进行阐述。 1.安全存在的目的? 为了支持组织的目标、使命和宗…...
玩客云 IP查找
1.玩客云使用静态IP在不同网段路由器下不能使用,动态不好找IP地址 1.1使用python3 实现自动获取发送 import requests import os import socket# 从环境变量获取 PushPlus 的 token 和群组编码 PUSH_PLUS_TOKEN os.getenv("PUSH_PLUS_TOKEN") PUSH_PLU…...
鸿蒙与跨端迁移的重要性
鸿蒙操作系统(HarmonyOS)是由华为公司开发的一款面向未来的全场景分布式操作系统。它旨在提供一个统一的平台,支持各种设备之间的无缝协作和数据共享,从而为用户提供更加连贯和高效的体验。在鸿蒙的生态系统中,跨端迁移…...
MATLAB学习之旅:从入门到基础实践
在当今科技飞速发展的时代,MATLAB作为一款强大的数学软件,犹如一把神奇的钥匙,能够打开众多领域的大门。无论是工程计算、数据分析,还是算法开发、可视化呈现,MATLAB都展现出了无与伦比的魅力。今天,就让我们踏上这段奇妙的MATLAB学习之旅,从最基础的部分开始,逐步探索…...
【队列】循环队列(Circular Queue)详解
文章目录 一、循环队列简介二、循环队列的判空和判满三、循环队列的实现leetcode 622. 设计循环队列 一、循环队列简介 在实际开发中,队列是一种常用的数据结构,而循环队列(Circular Queue)则一般是一种基于数组实现的队列&#x…...
Spring-GPT智谱清言AI项目(附源码)
一、项目介绍 本项目是Spring AI第三方调用整合智谱请言(官网是:https://open.bigmodel.cn)的案例,回答响应流式输出显示,这里使用的是免费模型,需要其他模型可以去 https://www.bigmodel.cn/pricing 切换…...
【JavaEE进阶】MyBatis入门
目录 🌴前言 🌲什么是MyBatis? 🌳准备工作 🚩创建工程 🚩配置数据库连接字符串 🚩数据准备 🚩编写持久层代码 🍃单元测试 🌴前言 在应⽤分层学习时,我们了解到…...
网络安全:防范NetBIOS漏洞的攻击
稍微懂点电脑知识的朋友都知道,NetBIOS 是计算机局域网领域流行的一种传输方式,但你是否还知道,对于连接互联网的机器来讲,NetBIOS是一大隐患。 漏洞描述 NetBIOS(Network Basic Input Output System,网络基本输入输…...
【OS安装与使用】part3-ubuntu安装Nvidia显卡驱动+CUDA 12.4
文章目录 一、待解决问题1.1 问题描述1.2 解决方法 二、方法详述2.1 必要说明2.2 应用步骤2.2.1 更改镜像源2.2.2 安装NVIDIA显卡驱动:nvidia-550(1)查询显卡ID(2)PCI ID Repository查询显卡型号(3…...
如何在本地和服务器新建Redis用户和密码
文章目录 一. Redis安装二. 新建Redis用户,测试连接2.1 本地数据库2.2 线上数据库2.2.1 安装和配置2.2.2 测试连接 三. 配置四. 分布式 一. Redis安装 Redis安装 可以设置开机自动启动,也可以在去查看系统服务,按[win R],输入命…...
使用SHOW PROCESSLIST和SHOW ENGINE INNODB STATUS排查mysql锁等待问题
现象: mysql 查某表一直不能结束,查别的表没有问题。已知之前刚刚alter此表想把它的一个字段长度增长,但是这个操作一直没有结束。现在应该怎么办? 方案: 使用 SHOW PROCESSLIST; 查看当前所有活动的SQL线程,找出是否有长时间…...
探索HarmonyOS的UI开发新境界:从基础到进阶的深度解析
在科技日新月异的今天,操作系统作为连接硬件与软件的桥梁,其重要性不言而喻。HarmonyOS,作为华为自主研发的分布式全场景操作系统,正以其独特的分布式技术架构和一次开发多端部署的能力,引领着操作系统的新潮流。本文将…...
Android 动态加入Activity 时 manifest 注册报错解决。使用manifestPlaceholders 占位
需求如下: 项目 测试demo 有多个渠道,部分渠道包含支付功能,在主测试代码外,需要一个单独 Activity 调用测试代码。 MainActivityPayActivity渠道A包含不包含渠道B包含包含 因为支付功能需要引入对应的 moudule,因此…...
OpenCV(1):简介、安装、入门案例、基础模块
1 OpenCV 简介 OpenCV 是一个功能强大、应用广泛的计算机视觉库,它为开发人员提供了丰富的工具和算法,可以帮助他们快速构建各种视觉应用。随着计算机视觉技术的不断发展,OpenCV 也将会继续发挥重要的作用。OpenCV 提供了大量的计算机视觉算法…...
Linux-GlusterFS操作子卷
文章目录 分布式卷添加卷分布式卷删除子卷删除总卷 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2025年02月20日19点30分 分布式卷添加卷 Node1上进行操作 扩容 #服务器端 gluster volu…...
kettle从入门到精通 第九十二课 ETL之kettle 使用Kettle的Carte对外发布读写接口
场景:使用kettle实现将查询结果返回给客户端,也就是说kettle暴露查询接口供外围系统调用。前提必须是使用carte服务才可以提供接口供外部系统调用。具体实操方法如下: 1、设计转换 根据具体需求设计转换,主要用到的步骤有获取变…...
【精调】LLaMA-Factory 快速开始1: Meta-Llama-3.1-8B-Instruct
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml llamafactory-cli chat examples/inference/llama3_lora_sft.yaml llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml模型下载 git clone https://www.modelscope.cn/LLM-Research/Meta-Lla…...
数据库加密全解析:从传输到存储的安全实践
title: 数据库加密全解析:从传输到存储的安全实践 date: 2025/2/17 updated: 2025/2/17 author: cmdragon excerpt: 数据加密是数据库安全的最后一道物理防线。传输层SSL/TLS配置、存储加密技术及加密函数实战应用,覆盖MySQL、PostgreSQL、Oracle等主流数据库的20+生产级加密…...
PHP+Apache+MySQL安装(Windows)
一、安装教程 参考链接1 参考链接2 二、问题描述 PHP安装目录下找不到php8apache2_4.dll PHP安装包下载错误 Apache Service Monitor: request operation has failed! 定位问题: 查看【事件查看器】 解决问题 安装或更新与PHP版本相对应的Visual C Redistribu…...
alt+tab切换导致linux桌面卡死的急救方案
环境 debian12 gnome43.9 解决办法 观察状态栏,其实系统是没有完全死机的,而且gnome也可能没有完全死机。 1. alt f4 关闭桌面上的程序,因为这个方案是我刚刚看到的,所以不确定能不能用,比起重启系统,…...
Mysql基础语句
一、 MySQL语句 在熟悉安装及访问 MySQL 数据库以后, 接下来将学习使用 MySQL 数据库的基本操作,这也是在服务器运维工作中不可或缺的知识。 本节中的所有数据库语句均在“MySQL>”操作环境中执行 MySQL 是一套数据库管理系统,在每台 MySQ…...
网络通信基础:端口、协议和七层模型详解,网络安全零基础入门到精通实战教程!
一、端口和协议的概念 1.在网络技术中,端口(Port) 大致有两种意思: 一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。 二是逻辑意义上的端口&…...
【力扣Hot 100】栈2
5. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: !https://assets.leetcode.com/uploads/2021/01/04/histogram.jpg …...
1. Linux下 MySQL 的详细安装与使用
1. Linux下 MySQL 的详细安装与使用 文章目录 1. Linux下 MySQL 的详细安装与使用1. Linux 下安装 MySQL8.0 的详细安装步骤:2. Linxu 当中的MySQL 设置远程登录3. 最后: 1. Linux 下安装 MySQL8.0 的详细安装步骤: 查看是否安装过MySQL&…...
Idea24.3 如何设置Git忽略某一个文件
文章目录 左上角找到commit选中你要忽略的文件 右键New Changelist给这个文件夹名称和描述 点击ok将要忽略的文件添加到这个文件夹 左上角找到commit 选中你要忽略的文件 右键New Changelist 给这个文件夹名称和描述 点击ok 将要忽略的文件添加到这个文件夹...
2025-02-20 学习记录--C/C++-PTA 7-27 冒泡法排序
一、题目描述 ⭐️ 二、代码(C语言)⭐️ /** * 冒泡法实现升序 */#include <stdio.h>int main() {int N, // 整数个数 6K, // 扫描遍数 2num, // 待排序的整数 2 3 5 1 6 4numArr[100], // 待排序的整数合集 2 3 5 1…...
如何修改Windows系统Ollama模型存储位置
默认情况下,Ollama 模型会存储在 C 盘用户目录下的 .ollama/models 文件夹中,这会占用大量 C 盘空间,增加C盘“爆红”的几率。所以,我们就需要修改Ollama的模型存储位置 Ollama提供了一个环境变量参数可以修改Ollama的默认存在位…...
【Python爬虫(26)】Python爬虫进阶:数据清洗与预处理的魔法秘籍
【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取ÿ…...
NPM如何更换淘宝镜像——Node.js国内镜像配置教程
在国内使用 npm 安装 Node.js 包时,由于网络环境的原因,下载速度可能非常慢。为了解决这个问题,很多开发者会选择使用淘宝镜像(现在由 npmmirror.com 维护)。本文将带你一步一步完成更换 npm 源为淘宝镜像的配置&#…...
汽车免拆诊断案例 | 2010 款路虎揽胜车空调偶尔出风异常
故障现象 一辆2010款路虎揽胜车,搭载5.0 L发动机,累计行驶里程约为16万km。车主反映,接通空调开关后,有时出风忽大忽小,有时不出风,有时要等2 min左右才出风;有时两三天出现一次,…...
pytorch3d安装记录
官方安装教程: https://github.com/facebookresearch/pytorch3d/blob/main/INSTALL.md 通过pip 或conda 可以很容易安装上预编译好的包, 安装过程不会报错, 但是使用的时候就会报各种错误 ,原因是预编译好的包跟自己的环境不一定…...
服务器通过 ollama 运行deepseek r1
1、服务器环境简介 56核 CPU64G 内存无显卡已安装 Ollama 2、下载模型与配置 正常可以通过 ollama pull 或 ollama run 命令直接下载,但通常会遇到连接超时、找不到网址等总理。因此,可以使用国内的模型站进行下载,在这里使用魔塔查找模型…...
ollama stream“:True django如何返回数据
在使用 Django 框架开发 Web 应用时,如果你想要通过 Ollama 流式返回数据,你可以通过 Django 的 HttpResponse 或者 StreamingHttpResponse 来实现。Ollama 主要用于处理文本生成任务,如聊天机器人、自动完成等,通常这些任务会产生…...
RabbitMQ 消息队列
1. 消息队列是什么? 当用户注册成功后,就发送邮件。当邮件发送成功了,接口才会提示注册成功信息。但由于发送邮件,依赖于其他厂商的服务,有可能他们的接口会非常耗时。那么用户就一直要等着邮件发送成功了,…...
idea从远程gitee拉取项目
文章目录 从gitee上面拿到项目地址填写远程地址,并且设置项目保存位置拉取成功 从gitee上面拿到项目地址 填写远程地址,并且设置项目保存位置 拉取成功...
PHP集成软件用哪个比较好?
在Windows环境下,使用PHP时,通常需要一个集成开发环境(IDE)或者集成软件来简化开发和调试过程。以下是几款常用且推荐的PHP集成软件,每款都有其特点,可以根据需求进行选择: 1. XAMPP 特点&…...
Es的text和keyword类型以及如何修改类型
昨天同事触发定时任务发现es相关服务报了一个序列化问题, 今天早上捕获异常将异常堆栈全部打出来看,才发现是聚合的字段不是keyword类型的问题。 到kibbna命令行执行也是一样的错误 使用 /_mapping查看索引的字段类型,才发现userUniqueid是te…...
【找工作】C++和算法复习(自用)
文章目录 C头文件自定义排序函数stl 算法数据结构树状数组 数学 自用随便记录 C 排序 stl 头文件 全能头文件: #include<bits/stdc.h>自定义排序函数 bool compare(const int &odd1,const int &odd2) {return odd1>odd2; }stl 枚举map map&…...
Python VsCode DeepSeek接入
Python VsCode DeepSeek接入 创建API key 首先进入DeepSeek官网,https://www.deepseek.com/ 点击左侧“API Keys”,创建API key,输出名称为“AI” 点击“创建",将API key保存,复制在其它地方。 在VsCode中下载…...
开放表格式和对象存储架构指南
比较 Apache Iceberg、Delta Lake 和 Apache Hudi,并了解如何为您的数据湖仓一体选择合适的开放表格式。开放表格式和对象存储正在重新定义组织构建其数据系统的方式,为可扩展、高效且面向未来的数据湖仓一体奠定了基础。通过利用对象存储的独特优势&…...
Netty入门详解
引言 Netty 是一个基于 Java 的高性能、异步事件驱动的网络应用框架,用于快速开发可维护的高性能网络服务器和客户端。它提供了一组丰富的 API,使得开发人员能够轻松地处理各种网络协议,如 TCP、UDP 等,并且支持多种编解码方式&a…...
我国首条大型无人机城际低空物流航线成功首航
首航震撼开场:羊肉 “飞” 越 540 公里 在夜色的笼罩下,榆阳马合通用机场的跑道上,一架大型固定翼无人机蓄势待发,机身被灯光照亮,宛如一只即将展翅翱翔的钢铁巨鸟。它的货舱里,满满装载着新鲜的榆林羊肉&a…...
【数据挖掘】--算法
【数据挖掘】--算法 目录:1. 缺失值和数值属性处理1缺失值处理: 2. 用于文档分类的朴素贝叶斯3. 分治法:建立决策树4. 覆盖算法建立规则5. 挖掘关联规则6. 线性模型有效寻找最近邻暴力搜索(Brute-Force Search)kd树&am…...