MongoDB平替数据库对比
背景
项目一直是与实时在线监测相关,特点数据量大,读写操作大,所以选用的是MongoDB。但按趋势来讲,需要有一款国产数据库可替代,实现信创要求。选型对比如下
1. IoTDB
这款是由清华大学主导的开源时序数据库,用于特联网交互场景为主,专注于处理时序数据问题。
主要特点如下:
- 高效能读写:经基准测试,其读写性能优于 KairosDB、InfluxDB 等现有时序数据库。支持数以百万计的低功耗设备的强连接数据访问、高速数据读写,适用于智能网络设备和混合设备。
- 部署方便:可实现端云一体化解决方案。轻量级
- 高效存储:采用TsFile 文件系统,可用于大数据分析,磁盘压缩比高
- 查询语义丰富:丰富的聚合操作支持,还支持SQL语言
API可参考: https://iotdb.incubator.apache.org/zh/UserGuide/V1.2.x/API/Programming-Java-Native-API.html
不考虑原因: 与Mongo 写法有一定差别,不支持文档类型,不考虑了
2. TapDB
TapDB是深圳钛铂数据有限公司旗下的产品,由前 MongoDB 大中华区首席架构师、MongoDB 中文社区主席唐建法创建。由游戏开发者团队打造。是一个以低延迟数据复制和实时数据处理为核心优势构建的现代数据平台。拥有完全自主知识产权的、管理海量文档数据对象,同时适应于事务和分析场景的国产分布式文档数据库。TapDB 是一套专注于解决游戏项目数据需求的分析工具,致力于帮开发者实现低成本、高效率的接入与查询体验。
主要特点
- 低门槛接入: 服务产接入支持REST API ,可以在不依赖 SDK 的情况下直接将数据上报到 TapDB。
- 无延时:官网原话描述:上报后可以立刻查到数据,时间就是生命
- 免费使用
API及接入方式可参考:https://www.tapdb.com/docs/aboutUs
最大的缺点也是由于该产品应用场景决定,不可离线使用,只能联网接入游戏数据。
不考虑原因:在线数据库,不能离线使用,不考虑了
3. SequoiaDB
3.1 概述
SequoiaDB 巨杉数据库 是一款分布式文档型 NoSQL 数据库,自研原生分布式存储引擎支持完整 ACID,具备弹性扩展、高并发和高可用特性。适用于历史数据平台、全量数据平台、实时数据中台和内容数据管理平台等各类应用场景。侧重应用场景为金融类。广泛应用于银行、保险、证券、新能源、政府等行业等。
主要物点
- 兼容性:完全兼容传统关系型数据,数据分片对应用程序完全透明
- 高性能与无限水平弹性扩展
- 分布式事务与ACID能力
- 同时支持结构化、半结构化、非结构化数据
- 金融级安全性,多数据中心间容灾能力强
- 多租户能力,去环境下支持多种级别的特量与逻辑隔离
API参考手册:https://doc.sequoiadb.com/cn/sequoiadb-cat_id-1558957223-edition_id-304
3.2 安装部署
SequoiaDB 巨杉数据库是一款金融级分布式数据库,可以轻松地部署和运行在主流框架的服务器及虚拟化环境。同时作为一款高性能分布式数据库,SequoiaDB 巨杉数据库支持绝大多数的主流硬件网络设备和主流的 Linux 操作系统环境.
3.2.1 硬件与操作系统要求
- X86架构(Linux):通用X86硬件平台
【Red Hat Enterprise Linux (RHEL) 6/7/8、SUSE Linux Enterprise Server (SLES) 11 Service Pack 1/2/3、 Ubuntu 12/14/16.x、CentOS 6/7/8.x、国产统信 UOS、深度 Deepin、中标麒麟、银河麒麟、红旗 Linux】; - ARM64架构(Linux):华为 TaiShan 服务器(鲲鹏 920 处理器)、长城擎天服务器(飞腾 2000 处理器)
【Red Hat Enterprise Linux (RHEL) 7/8、 Ubuntu 16.x、CentOS 7/8.x、国产统信 UOS、深度 Deepin、中标麒麟、银河麒麟、华为 EulerOS(openEuler)】; - Power架构(Linux):浪潮(IBM) Open Power受支持的操作系统
【Red Hat Enterprise Linux Server release 7.5】
3.2.2 说明Note:
- 操作系统需安装 glibc 2.15 和 libstdc++ 6.0.18,或安装其更高版本。
- 如果用户需要将未在上述列表中列举的 Linux 操作系统应用于生产环境,建议联系 SequoiaDB 技术支持,以获得更详细的信息。
网址参考
- 技术生态参考:https://blog.sequoiadb.com/cn/
- spring data MongoDB操作参考:https://idea.sequoiadb.com/cn/d/1387
- JAVA 原生驱动参考https://doc.sequoiadb.com/cn/index/Public/Home/document/304/api/java/html/index.html
- Mongo协议兼容参考
https://blog.csdn.net/weixin_53480635/article/details/115211814
3.3 SequoiaDB 与MongoDB命令兼容对比
3.4 社区版本和企业版本对比
待补充…
4. OceanBase
由蚂蚁集团完全自主研发的原生分布式关系型数据库,已连续 10 余年稳定支撑双 11,代码级可控,大规模金融核心场景 10 余年可靠性验证,稳定可靠真正实现数据强一致,数据不丢失。高度兼容 Oracle 和 MySQL。适用场景包括银行、保险、零售,也适用于电子商务、物联网,满足大规模数据存储和处理要求。
主要特点:
- 稳定可靠:RPO(Recruitment Process Outsourcing,恢复数据的完整性指标)=0,RTO(Recovery Time Objective恢复所需时间指标代表了及时性)小于8秒故障自动恢复能务,满足严苛条件下的业务连续性。
- 成本低:存储成本相比传统商业DB有显著优势,存储成本能降低70%-90%。基线加增加的存储引擎,增量存内存,基线存SSD盘,DML是内存操作。,LSM-Tree架构,数据存储压缩率能够相较传统数据库提升 10+ 倍。
- 易用性:支持活跃事务的落盘保证用户的大事务/长事务的正常运行或回滚
- 高性能:提供了多级 cache 加速来保证极低的响应延时
- 高安全性:支持国密GCM完整性校验,完备的角色权限管理体系,数据存储和通信全链路透明加密。通过等保三级专项合规检测。
- 高兼容性:高度兼容 Oracle 和 MySQL,全链路迁移工具及体系,支持新旧系统并跑提供更强性能,支持海光、鲲鹏、Intel 等多种芯片满足混合部署业务需求。
- 水平扩展:支持透明水平扩展,集群节点可超过数千个,单集群最大数据量超过 3PB,最大单表行数达万亿级。
API可参考:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639550
不考虑原因:实现语义语法和Mongo区别很大,oceanbase仍为关系型数据库,可以很好地替换Mysql和Oracle,对于关系库单表数据量的查询瓶颈做了优化扩展,其Nosql主要是依靠其字符串的一些函数及其强大的查询做为支持实现。如果基于现有Mongo开的改造替换,工作量仍然不小
TiDB
TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
参考文档https://docs.pingcap.com/zh/tidb/stable/overview
几乎完全兼容Mysql
不考虑因素:从数据模型和查询语言来看,MongoDB是文档型数据库,使用JSON格式的文档来存储数据,并使用MongoDB查询语言进行数据查询。而TiDB是关系型数据库,使用SQL作为查询语言。如果将现有的MongoDB应用程序迁移到TiDB,需要将MongoDB的查询语句改为TiDB的SQL语句。
KingbaseES
待更新…
GaussDB
待更新…
GaussDB(for Mongo)不支持离线使用。
GaussDB(for Mongo)是华为云自主研发的兼容MongoDB4.0接口的文档数据库,它是基于云计算架构的分布式数据库服务,需要依赖华为云的基础设施和服务来运行。用户可以通过华为云提供的管理控制台、API等方式对GaussDB(for Mongo)进行操作和管理,包括创建实例、配置参数、监控运行状态等。
GaussDB(for Mongo)是华为云自主研发的兼容MongoDB4.0接口的文档数据库,以下是其详细介绍:
-
技术架构
- 存算分离架构:采用计算存储分离的架构模式,计算节点和存储节点可分别独立部署,通过高速网络进行通信。这种架构使得资源可以灵活扩展,能够根据业务需求单独增加计算资源或存储资源,有效提高了系统的可扩展性和资源利用率。
- 共享存储设计:基于共享存储的架构,多个节点可以同时访问和使用同一份数据存储空间。与传统的社区版MongoDB相比,在添加Secondary节点时不需要拷贝数据,添加动作可以秒级完成,大大提高了集群的扩展效率。
-
功能特点
- 高可用性:支持副本集模式,通过数据的冗余备份和自动故障转移机制,确保在节点出现故障时,系统能够自动切换到其他正常节点继续提供服务,保证业务的连续性。
- 弹性扩展:计算节点和存储节点都可以根据业务负载的变化进行弹性扩展,无需停机重启,对业务的影响极小。无论是应对业务高峰期的流量增长,还是长期的业务发展需求,都可以轻松实现资源的动态调整。
- 数据一致性:在分布式环境下,能够保证数据的强一致性,确保不同节点上的数据始终保持一致,避免因数据不一致导致的错误和问题。
- 兼容性:完全兼容MongoDB4.0接口,对于已经使用MongoDB的应用,可以无缝迁移到GaussDB(for Mongo),无需修改代码,大大降低了迁移成本和风险。
- 性能优化:针对LSMTree的写压力来源进行了优化,将Compaction任务集中化管理,卸载到Compaction统一调度池,减少了用户计算节点的CPU和IO资源消耗,提升了整体性能。
-
应用场景
- 互联网应用:适用于各种互联网应用的后端数据库,如社交网络、内容管理系统、在线游戏等,能够提供高性能、高可用的数据存储和处理能力,满足大量用户的并发访问需求。
- 物联网领域:可以作为物联网设备数据的收集和存储中心,处理海量的物联网设备产生的数据,为物联网应用提供实时数据分析和决策支持。
- 金融行业:在金融交易、风险管理、客户关系管理等场景中,GaussDB(for Mongo)的高性能和高可用性能够保障金融业务的稳定运行,同时满足金融行业对数据安全和合规性的要求。
- 大数据与分析:适合用于大数据的存储和分析,能够与其他大数据处理工具和平台集成,为企业提供强大的数据分析能力,帮助企业挖掘数据价值,做出更明智的决策。
综上所述,GaussDB(for Mongo)是一款功能强大、性能优越的文档数据库产品,具有高可用性、弹性扩展、数据一致性等特点,广泛应用于互联网、物联网、金融、大数据等领域。
下图来源于官网
TDSQL
待更新…
归纳
国产的文档数据库主要有以下几种:
-
SequoiaDB 巨杉数据库:原生支持 JSON API 操作,如增删改查,在扩展性、高可用和整体性能方面有明显优势。采用原生分布式架构,集群规模可弹性扩展,支持从 TB 到 PB 级的不同应用需求。数据库引擎原生支持多中心容灾,无单点故障。【官方客户一直没联系上,不知道后续运维如何】
-
TapDB 分布式文档数据库:全面兼容 MongoDB 社区版,适配国产芯片鲲鹏、海光、海思以及麒麟等操作系统,满足信创要求,可应用于事务和分析场景。【用于在线且游戏应用场景】
-
GaussDB(for Mongo):是华为推出的 MongoDB 替代产品,基于统一的架构设计,支持分布式集群部署,具备良好的兼容性和稳定性。
-
OceanBase:虽然主要是关系型数据库,但也可以存储和管理一些半结构化和非结构化的数据,其强大的事务处理能力和分布式特性使其在一些场景下可作为文档数据库的替代品。
总的来说,这些数据库各具特色,在不同的应用场景中发挥着重要作用。
相关文章:
MongoDB平替数据库对比
背景 项目一直是与实时在线监测相关,特点数据量大,读写操作大,所以选用的是MongoDB。但按趋势来讲,需要有一款国产数据库可替代,实现信创要求。选型对比如下 1. IoTDB 这款是由清华大学主导的开源时序数据库&#x…...
ANSYS学习笔记(十)网格质量的诊断和提高
网格质量的好坏不能单纯只看meshing给出的网格质量结果,要根据实际的计算物理场景来判断,需要求解的地方物理量大梯度的位置网格越密越好。 网格质量:在有限网格数量限制下,离散误差小的网格是好网格,是高质量网格。网…...
能量提升法三:赞美
前情回顾: 《能量提升法二:感恩》 片段:“感恩,就像是在跟世界说:谢谢你,我收到了,我很喜欢,请多来点” 把它归还人海,就当作每一个人,都有可能是曾经帮助…...
C++中函数返回值当引用
文章目录 一、概述二、返回值当引用的基本语法三、返回局部变量的引用四、返回引用的常见用途五、返回右值引用六、总结 一、概述 在 C 中,函数返回值当引用(即返回引用)是一个常见的编程技巧。它可以让你返回一个函数内部的局部变量或对象的…...
27. C语言 强制类型转换详解
本章目录: 前言强制类型转换(Type Casting)强制类型转换的语法示例1:将整数转换为浮点数输出结果: 代码解析: 整数提升(Integer Promotion)示例2:整数提升输出结果: 代码…...
Linux 命令之技巧(Tips for Linux Commands)
Linux 命令之技巧 简介 Linux 是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户…...
freeswitch在centos上编译过程
操作系统:centos9-last usr/local/freeswitch/bin/freeswitch -version FreeSWITCH version: 1.10.13-devgit~20250125T131725Z~3f1e4bf90a~64bit (git 3f1e4bf 2025-01-25 13:17:25Z 64bit)vi /etc/ssh/sshd_config ip a nmtui reboot ip a curl -o /etc/pki/rpm-…...
快速入门Flink
Flink是新一代实时计算平台,采用原生的流处理系统,保证了低延迟性,在API和容错上也是做的相当完善,本文将从架构、组件栈、安装、入门程序等进行基础知识的分析,帮助大家快速对Flink有一个了解。 一.简介 1.是什么 Ap…...
c++ list
1.构造函数 构造函数 // list<T> lst; // list(beg, end); // 区间构造 // list(n, elem); // 元素构造 // list(const list &lst); // 拷贝构造#include <iostream> #include <fstream> #include <string> #include <list> using name…...
Vue 3 + TypeScript 实现父子组件协同工作案例解析
引言 在现代的前端开发中,Vue.js 作为一款流行的渐进式 JavaScript 框架,为我们构建交互式用户界面提供了强大的支持。Vue 3 的推出带来了许多新特性,尤其是组合式 API 的引入,让代码的组织和复用更加灵活。同时,TypeS…...
深度剖析C++17中的std::optional:处理可能缺失值的利器
文章目录 一、基本概念与设计理念二、构建与初始化(一)默认构造(二)值初始化(三)使用std::make_optional(四)使用std::nullopt 三、访问值(一)value()&#x…...
【ArcGIS微课1000例】0141:提取多波段影像中的单个波段
文章目录 一、波段提取函数二、加载单波段导出问题描述:如下图所示,img格式的时序NDVI数据有24个波段。现在需要提取某一个波段,该怎样操作? 一、波段提取函数 首先加载多波段数据。点击【窗口】→【影像分析】。 选择需要处理的多波段影像,点击下方的【添加函数】。 在多…...
一分钟搭建promehteus+grafana+alertmanager监控平台
为什么要自己搭建一个监控平台 平时进行后端开发,特别是微服务的后端可开发,一定少不了对接监控平台,但是平时进行一些小功能的测试又没有必要每次都手动安装那么多软件进行一个小功能的测试,这里我使用docker-compose搭建了一个…...
Transfoemr的解码器(Decoder)与分词技术
在自然语言处理(NLP)领域,解码器(Decoder)和分词技术是两个至关重要的概念。解码器是序列生成任务的核心组件,而分词则是将文本数据转换为可处理形式的基础步骤。 一、解码器(Decoder&…...
LeetCode100之在排序数组中查找元素的第一个和最后一个位置(34)--Java
1.问题描述 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题 示例1 输入…...
数字人+展厅应用方案:开启全新沉浸式游览体验
随着人们生活质量的不断提升,对于美好体验的追求日益增长。在展厅展馆领域,传统的展示方式已难以满足大众日益多样化的需求。而通过将数字人与展厅进行深度结合,可以打造数字化、智能化新型展厅,不仅能提升展示效果,还…...
echo ‘export PATH=/usr/local/bin:$PATH‘ >> ~/.bashrc这个和直接添加到/etc/profile有什么区别
echo export PATH/usr/local/bin:$PATH >> ~/.bashrc 和直接添加到 /etc/profile 都是用于修改 PATH 环境变量,但它们适用的范围和效果有所不同: 1. 修改 ~/.bashrc 文件 作用范围:~/.bashrc 是针对当前用户的配置文件,它…...
kafka消费者详细介绍(超级详细)
文章目录 一、Kafka 消费者与消费者组1.1 Kafka 消费者(Consumer)概述1.1.1 消费者工作流程1.1.2 消费者的关键配置 1.2 Kafka 消费者组(Consumer Group)概述1.2.1 消费者组的工作原理1.2.2 消费者组的优点1.2.3 消费者组的再均衡…...
《剪映5.9官方安装包》免费自动生成字幕
(避免失效建议存自己网盘后下载)剪映5.9官方Win.Mac 链接:https://pan.xunlei.com/s/VOHc-Fg2XRlD50MueEaOOeW1A1?pwdawtt# 官方唯一的免费版,Win和Mac都有,此版本官方已下架,觉得有用可转存收藏…...
CAS是什么?ABA会带来什么影响?怎么解决ABA问题?
前言 在高并发开发中,CAS(比较并交换)是一种常用的无锁操作,因其高效性而被广泛应用。然而,实际工作中常会遇到ABA问题,导致数据更新异常或逻辑错误。理解CAS的原理及ABA问题的解决方法,有助于…...
智能调度体系与自动驾驶技术优化运输配送效率的研究——兼论开源AI智能名片2+1链动模式S2B2C商城小程序的应用潜力
摘要:随着全球化和数字化进程的加速,消费者需求日益呈现出碎片化和个性化的趋势,这对物流运输行业提出了前所未有的挑战。传统的物流调度体系与调度方式已难以满足当前复杂多变的物流需求,因此,物流企业必须积极引入大…...
方豆子(递归)
方豆子 思路:很典的一道递归题,但当时没想到怎么递归/(ㄒoㄒ)/~~。赛后看了大佬的讲解知道要将这个图形看成由四个小正方形组成的大正方形,递归参数可以设置成(r1,c1,r2,c2,good)表示正方形的左上角坐标和右下角坐标以及当前这个正…...
Go语言入门指南(二): 数据类型
文章创作不易,麻烦大家点赞关注转发一键三连。 在上一篇文章,我们已经完成了开发环境的搭建,成功创建了第一个“Hello, World”程序,并且对变量的声明和初始化有了初步的认识。在这篇文章中,我们将主要介绍Go语言的数据…...
Django ORM解决Oracle表多主键的问题
现状 以Django 3.2为例 Django ORM 设计为默认使用单一主键(通常是自增的 id 字段),这一选择主要基于以下核心原因: 简化ORM设计与操作 统一访问方式外键关联简化 避免歧义冲突 主键语义明确防止隐式依赖 性能与数据库兼容 索引…...
学习数据结构(2)空间复杂度+顺序表
1.空间复杂度 (1)概念 空间复杂度也是一个数学表达式,表示一个算法在运行过程中根据算法的需要额外临时开辟的空间。 空间复杂度不是指程序占用了多少bytes的空间,因为常规情况每个对象大小差异不会很大,所以空间复杂…...
实验一---典型环节及其阶跃响应---自动控制原理实验课
一 实验目的 1.掌握典型环节阶跃响应分析的基本原理和一般方法。 2. 掌握MATLAB编程分析阶跃响应方法。 二 实验仪器 1. 计算机 2. MATLAB软件 三 实验内容及步骤 利用MATLAB中Simulink模块构建下述典型一阶系统的模拟电路并测量其在阶跃响应。 1.比例环节的模拟电路 提…...
从零推导线性回归:最小二乘法与梯度下降的数学原理
欢迎来到我的主页:【Echo-Nie】 本篇文章收录于专栏【机器学习】 本文所有内容相关代码都可在以下仓库中找到: Github-MachineLearning 1 线性回归 1.1 什么是线性回归 线性回归是一种用来预测和分析数据之间关系的工具。它的核心思想是找到一条直…...
OpenSIPS-从安装部署开始认识一个组件
前期讲到了Kamailio,它是一个不错的开源SIP(Session Initiation Protocol)服务器,主要用于构建高效的VoIP(Voice over IP)平台以及即时通讯服务。但是在同根同源(OpenSER)的分支上&a…...
数据结构(树)
每一个节点包含:父节点地址 值 左子节点地址 右子节点地址 如果一个节点不含有:父节点地址或左子节点地址 右子节点地址就记为null 二叉树 度:每一个节点的子节点数量 二叉树中,任意节点的度<2 树的结构: 二叉查…...
[Dialog屏幕开发] 设置搜索帮助
阅读该篇文章之前,可先阅读下述资料 [Dialog屏幕开发] 屏幕绘制(使用向导创建Tabstrip Control标签条控件)https://blog.csdn.net/Hudas/article/details/145372195?spm1001.2014.3001.5501https://blog.csdn.net/Hudas/article/details/145372195?spm1001.2014.…...
C语言从入门到进阶
视频:https://www.bilibili.com/video/BV1Vm4y1r7jY?spm_id_from333.788.player.switch&vd_sourcec988f28ad9af37435316731758625407&p23 //枚举常量 enum Sex{MALE,FEMALE,SECRET };printf("%d\n", MALE);//0 printf("%d\n", FEMALE…...
Node.js下载安装及环境配置教程 (详细版)
Node.js:是一个基于 Chrome V8 引擎的 JavaScript 运行时,用于构建可扩展的网络应用程序。Node.js 使用事件驱动、非阻塞 I/O 模型,使其非常适合构建实时应用程序。 Node.js 提供了一种轻量、高效、可扩展的方式来构建网络应用程序࿰…...
Mac Electron 应用签名(signature)和公证(notarization)
在MacOS 10.14.5之后,如果应用没有在苹果官方平台进行公证notarization(我们可以理解为安装包需要审核,来判断是否存在病毒),那么就不能被安装。当然现在很多人的解决方案都是使用sudo spctl --master-disable,取消验证模式&#…...
redis安装 windows版本
下载 github下载5.x版本redis 安装以及启动 解压文件,目标如下 进入cmd至安装路径 执行如下命令启动redis redis-server.exe redis.windows.conf 进入redis,另外启动cmd在当前目录执行进入redis 服务 redis-cli 测试命令 至此安装成功,但是这只是…...
关联传播和 Python 和 Scikit-learn 实现
文章目录 一、说明二、什么是 Affinity Propagation。2.1 先说Affinity 传播的工作原理2.2 更多细节2.3 传播两种类型的消息2.4 计算责任和可用性的分数2.4.1 责任2.4.2 可用性分解2.4.3 更新分数:集群是如何形成的2.4.4 估计集群本身的数量。 三、亲和力传播的一些…...
若依基本使用及改造记录
若依框架想必大家都了解得不少,不可否认这是一款及其简便易用的框架。 在某种情况下(比如私活)使用起来可谓是快得一匹。 在这里小兵结合自身实际使用情况,记录一下我对若依框架的使用和改造情况。 一、源码下载 前往码云进行…...
c语言网 1127 尼科彻斯定理
原题 题目描述 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 输入格式 任一正整数 输出格式 该数的立方分解为一串连续奇数的和 样例输入 13 样例输出 13*13*132197157159161163165167169171173175177179181 #include<ios…...
能说说MyBatis的工作原理吗?
大家好,我是锋哥。今天分享关于【Redis为什么这么快?】面试题。希望对大家有帮助; 能说说MyBatis的工作原理吗? MyBatis 是一款流行的持久层框架,它通过简化数据库操作,帮助开发者更高效地与数据库进行交互。MyBatis…...
卡特兰数学习
1,概念 卡特兰数(英语:Catalan number),又称卡塔兰数,明安图数。是组合数学中一种常出现于各种计数问题中的数列。它在不同的计数问题中频繁出现。 2,公式 卡特兰数的递推公式为:f(…...
【算法】多源 BFS
多源 BFS 1.矩阵距离2.刺杀大使 单源最短路问题 vs 多源最短路问题 当问题中只存在一个起点时,这时的最短路问题就是单源最短路问题。当问题中存在多个起点而不是单一起点时,这时的最短路问题就是多源最短路问题。 多源 BFS:多源最短路问题…...
解锁数字经济新动能:探寻 Web3 核心价值
随着科技的快速发展,我们正迈入一个全新的数字时代,Web3作为这一时代的核心构成之一,正在为全球数字经济带来革命性的变革。本文将探讨Web3的核心价值,并如何推动数字经济的新动能。 Web3是什么? Web3,通常…...
CAN总线数据采集与分析
CAN总线数据采集与分析 目录 CAN总线数据采集与分析1. 引言2. 数据采集2.1 数据采集简介2.2 数据采集实现 3. 数据分析3.1 数据分析简介3.2 数据分析实现 4. 数据可视化4.1 数据可视化简介4.2 数据可视化实现 5. 案例说明5.1 案例1:数据采集实现5.2 案例2࿱…...
appium自动化环境搭建
一、appium介绍 appium介绍 appium是一个开源工具、支持跨平台、用于自动化ios、安卓手机和windows桌面平台上面的原生、移动web和混合应用,支持多种编程语言(python,java,Ruby,Javascript、PHP等) 原生应用和混合应用…...
二叉树高频题目——下——不含树型dp
一,普通二叉树上寻找两个节点的最近的公共祖先 1,介绍 LCA(Lowest Common Ancestor,最近公共祖先)是二叉树中经常讨论的一个问题。给定二叉树中的两个节点,它的LCA是指这两个节点的最低(最深&…...
Java并发学习:进程与线程的区别
进程的基本原理 一个进程是一个程序的一次启动和执行,是操作系统程序装入内存,给程序分配必要的系统资源,并且开始运行程序的指令。 同一个程序可以多次启动,对应多个进程,例如同一个浏览器打开多次。 一个进程由程…...
【ProxyBroker】用Python打破网络限制的利器
ProxyBroker 1. 什么是ProxyBroker2. ProxyBroker的功能3. ProxyBroker的优势4. ProxyBroker的使用方法5. ProxyBroker的应用场景6.结语项目地址: 1. 什么是ProxyBroker ProxyBroker是一个开源工具,它可以异步地从多个来源找到公共代理,并同…...
Gradle buildSrc模块详解:集中管理构建逻辑的利器
文章目录 buildSrc模块二 buildSrc的使命三 如何使用buildSrc1. 创建目录结构2. 配置buildSrc的构建脚本3. 编写共享逻辑4. 在模块中引用 四 典型使用场景1. 统一依赖版本管理2. 自定义Gradle任务 3. 封装通用插件4. 扩展Gradle API 五 注意事项六 与复合构建(Compo…...
2025数学建模美赛|F题成品论文
国家安全政策与网络安全 摘要 随着互联网技术的迅猛发展,网络犯罪问题已成为全球网络安全中的重要研究课题,且网络犯罪的形式和影响日益复杂和严重。本文针对网络犯罪中的问题,基于多元回归分析和差异中的差异(DiD)思…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.10 文本数据炼金术:从CSV到结构化数组
1.10 《文本数据炼金术:从CSV到结构化数组》 目录 #mermaid-svg-TNkACjzvaSXnULaB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TNkACjzvaSXnULaB .error-icon{fill:#552222;}#mermaid-svg-TNkACjzva…...
「蓝桥杯题解」蜗牛(Java)
题目链接 这道题我感觉状态定义不太好想,需要一定的经验 import java.util.*; /*** 蜗牛* 状态定义:* dp[i][0]:到达(x[i],0)最小时间* dp[i][1]:到达 xi 上方的传送门最小时间*/public class Main {static Scanner in new Scanner(System.in);static f…...