HBase、Hive、Redis 和 MongoDB的对比
1. 数据库管理
操作 | HBase | Hive | Redis | MongoDB |
---|---|---|---|---|
创建数据库 | N/A (HBase 没有数据库概念) | CREATE DATABASE db_name; | N/A (Redis 没有数据库命名功能) | use db_name; (自动创建) |
查看数据库 | N/A | SHOW DATABASES; | INFO 查看全局信息 | show dbs; |
删除数据库 | N/A | DROP DATABASE db_name CASCADE; | N/A | db.dropDatabase(); |
切换数据库 | N/A | USE db_name; | SELECT db_index | use db_name; |
2. 表管理
以下是 HBase、Hive、Redis 和 MongoDB 中进行表结构增改操作的总结,具体包括表的增加和修改操作。
操作 | HBase | Hive | Redis | MongoDB |
---|---|---|---|---|
增加表 | 创建时指定列族 create 'table_name', 'cf1', 'cf2' 创建带版本的表 create 'version_table', {NAME => 'cf', VERSIONS => 5} | CREATE TABLE table_name (...); | N/A (键值对模型,没有表结构) | db.createCollection("table_name") |
修改表 | alter 'table_name', {NAME => 'new_cf', METHOD => 'add'} 添加列族或修改表的配置 | ALTER TABLE table_name ADD COLUMNS (column_definition); | 修改键值对:SET key_name value | db.table_name.updateOne() , db.table_name.updateMany() |
查看表 | list | SHOW TABLES; | KEYS * 查询所有键 | show collections; |
表结构 | describe 'table_name' | DESCRIBE table_name; 查看详细信息 DESCRIBE table_name; | N/A | db.table_name.stats() |
删除表 | disable 'table_name' drop 'table_name' | DROP TABLE table_name; | DEL key_name | db.table_name.drop() |
3. 数据操作
插入数据
操作 | HBase | Hive | Redis | MongoDB |
---|---|---|---|---|
插入单行 | put 'table_name', 'row1', 'cf1:col1', 'value' | INSERT INTO table_name VALUES (...); | 插入键值对字段SET key value 插入哈希表字段 HSET hkey:hvalue key value | db.table_name.insert({...}) |
批量插入 | 使用脚本或 API 插入 | LOAD DATA INPATH 'path' INTO TABLE ...; | MSET key1 value1 key2 value2 | db.table_name.insertMany([{...}]) |
查询数据
操作 | HBase | Hive | Redis | MongoDB |
---|---|---|---|---|
查询所有数据 | scan 'table_name' | SELECT * FROM table_name; | KEYS * 查询所有键HGETALL hkey:hvalue | db.table_name.find() |
按条件查询 | get 'table_name', 'row1' 查询版本数据get 'my_table', 'row1', {COLUMN => 'cf:column1', VERSIONS => 3} | SELECT * FROM table_name WHERE ...; | GET key | db.table_name.find({...}) |
字段查询 | get 'table_name', 'row1', 'cf1:col1' | SELECT col1 FROM table_name; | HGET hkey:hvalue key value | db.table_name.find({}, {field: 1}) |
更新数据
操作 | HBase | Hive | Redis | MongoDB |
---|---|---|---|---|
更新单个值 | put 'table_name', 'row1', 'cf1:col1', 'new_value' | UPDATE table_name SET col1 = ... WHERE ...; | SET key new_value | db.table_name.updateOne({...}, {$set: {...}},true.false) 参数1:查询条件,类似sql update 查询内 where 后的条件;参数2:update 的对象,类似 sql 中 update 中 set 后的内容;参数3:如果没有 update 的记录,true 表示插入,默认 false, 表示不插入;参数4:默认 false 表示只更新找到的第一条记录,true 表示更新所有满足条件的记录。 |
批量更新 | 使用脚本或 API 批量更新 | 批量更新不常见 | 不支持直接批量更新,需逐个设置 | db.table_name.updateMany({...}, {$set: {...}}) |
删除数据
操作 | HBase | Hive | Redis | MongoDB |
---|---|---|---|---|
删除单行 | delete 'table_name', 'row1' | DELETE FROM table_name WHERE ...; | DEL key | db.table_name.deleteOne({...}) |
删除某字段 | delete 'table_name', 'row1', 'cf1:col1' | N/A | HDEL hash_key field | db.table_name.update({...}, {$unset: {field: 1}}) |
删除所有数据 | 删除表再重建 | TRUNCATE TABLE table_name; | FLUSHDB | db.table_name.deleteMany({}) |
4. 其他管理操作
操作 | HBase | Hive | Redis | MongoDB |
---|---|---|---|---|
查看存储状态 | status | 查看 Hadoop 状态,需依赖 HDFS | INFO 查看运行状态 | db.stats() |
备份数据 | 使用快照或导出工具 | 使用 HDFS 导入导出功能 | 保存 RDB/AOF 文件 | 使用 mongodump |
恢复数据 | 使用快照恢复 | 使用 HDFS 数据恢复 | 载入 RDB/AOF 文件 | 使用 mongorestore |
查看日志 | 检查 HBase 日志目录 | 检查 Hadoop 日志 | 查看 Redis 日志文件 | 查看 MongoDB 日志文件 |
启动和关闭操作总结
数据库 | 启动命令 | 关闭命令 | 说明 |
---|---|---|---|
Hadoop | ./sbin/start-dfs.sh 和 start-yarn.sh | ./sbin/stop-dfs.sh 和 stop-yarn.sh | 启动 Hadoop 分布式文件系统(HDFS)和资源调度框架(YARN),其他组件如 Hive/HBase 均依赖它 |
HBase | ./bin/start-hbase.sh | ./bin/stop-hbase.sh | 集群模式下,需确保 Zookeeper 服务已启动;依赖 HDFS 提供存储支持 |
Hive | ./bin/hive 或 hive --service hiveserver2 & | exit | 需先启动 Hadoop 服务,包括 HDFS 和 YARN,Hive 基于 Hadoop 提供 SQL 接口 |
Redis | ./src/redis-server | redis-cli shutdown 或 kill <pid> | 简单高效,适合开发和缓存场景,独立运行,无需依赖其他服务 |
MongoDB | sudo service mongod start 或 mongod --config ... | sudo service mongod stop 或db.shutdownServer() | 默认无密码,生产环境建议配置用户权限和访问限制,独立运行,无需依赖其他服务 |
特点总结
数据库特点对比表
特性/维度 | HBase | Hive | Redis | MongoDB |
---|---|---|---|---|
数据库类型 | 分布式 NoSQL 数据库,基于 HDFS 的列式存储 | 分布式 SQL 数据仓库,基于 Hadoop 的批处理框架 | 内存型键值对数据库 | 文档型 NoSQL 数据库,最像关系型数据库的非关系型数据库 |
数据模型 | 行键 + 列族 + 列的多维度数据模型 | 传统关系型数据库表模型(Schema),支持分区表和桶表 | 键值对模型(字符串、哈希、列表、集合、有序集合、Stream) | BSON 文档模型(类 JSON),支持嵌套数据 |
存储机制 | 基于 HDFS 的列族存储,分布式存储,适合稀疏表 | 基于 HDFS 存储,通过 MapReduce 或 Tez 实现查询和处理 | 内存存储,支持持久化为 RDB 文件或 AOF 文件 | 二进制 JSON (BSON) 存储,支持分布式存储 |
查询语言 | 无查询语言,主要通过 Shell (scan和get)或编程接口(如 Java API)操作 | HiveQL(类似 SQL 的查询语言),支持简单的 SQL 操作 | 无查询语言,命令操作(如 GET , SET , HGET ) | 丰富的查询语言,支持 JSON 格式的复杂查询 |
事务支持 | 不支持事务,提供最终一致性 | 不支持事务,数据主要用于批量查询 | 支持简单事务(MULTI/EXEC),5.0+ 支持 Lua 脚本事务 | 支持多文档事务 |
扩展性 | 高扩展性,支持 PB 级数据,适合大规模分布式集群 | 高扩展性,依赖 Hadoop 的分布式架构 | 高扩展性,支持主从复制和分布式分片 | 高扩展性,支持分片和复制集 |
性能 | 写性能高,读性能较慢,适合实时写入大规模稀疏数据 | 查询速度慢,依赖 Hadoop 集群执行,适合离线批量查询 | 极高的读写性能(内存操作),适合实时请求场景 | 性能较高,适合多样化的数据存储和查询 |
适用场景 | 实时写入和查询大规模稀疏表,如 IoT 数据、时间序列数据 | 大规模数据的批量分析,如数据仓库、报表生成 | 高速缓存、会话管理、实时计数、排行榜等 | 应用程序数据库、文档存储、复杂查询场景 |
数据一致性 | 提供最终一致性 | 依赖底层 HDFS 的容错性,最终一致性 | 单机模式强一致性,分布式模式支持最终一致性 | 强一致性,支持多文档事务 |
索引机制 | 不支持二级索引,查询需按行键检索 | 依赖分区、桶和 HDFS 的 MapReduce 索引机制 | 数据类型内置索引(如有序集合),但无复杂索引 | 支持单字段索引、复合索引、地理空间索引等 |
编程接口 | 提供 Java、Python、Thrift 等多种 API,适合与应用程序集成 | 提供 JDBC/ODBC 接口,适合与 BI 工具和数据分析工具集成 | 提供多语言客户端库(Python、Java、Node.js 等),简单易用 | 提供多语言客户端(Python、Java、Node.js 等),支持复杂的查询语法 |
集群模式 | 支持分布式集群部署,分布式读写性能高 | Hadoop 环境下支持集群部署 | 主从复制、分布式分片,支持高可用和负载均衡 | 支持分片集群和复制集模式,适合高并发和高可用场景 |
持久化机制 | 数据存储在 HDFS 上,依赖 HDFS 的容错机制 | 通过 HDFS 持久化 | 支持 RDB 快照和 AOF 持久化 | 持久化数据到磁盘,支持定期备份和恢复 |
开发难度 | 操作复杂度高,学习曲线陡峭,需要深入理解 HDFS 和 MapReduce 的工作原理 | 接近传统 SQL,适合有 SQL 基础的开发者 | 简单易用,入门门槛低,适合轻量级数据管理 | 易用性较高,灵活性强,适合需要快速开发的场景 |
高可用支持 | 支持 HBase Master 和 RegionServer 的容错和自动恢复 | 高可用性依赖 Hadoop 的容错机制 | 主从复制和哨兵模式,支持快速故障转移 | 支持复制集机制,实现高可用性 |
典型应用 | 大数据实时存储与分析:物联网、日志存储、金融流水数据 | 数据仓库与离线分析:ETL、报表生成、用户行为分析 | 实时缓存:Web 应用、实时统计、消息队列、限流 | 灵活应用场景:内容管理系统、用户画像、移动应用数据库 |
开源与维护 | 开源项目,Apache 基金会维护,活跃度高 | 开源项目,Apache 基金会维护,广泛应用于大数据处理 | 开源项目,Redis Labs 维护,社区活跃 | 开源项目,MongoDB Inc. 维护,商业支持和社区支持丰富 |
选择建议
使用场景 | 推荐数据库 |
---|---|
实时写入和随机读取大规模稀疏数据 | HBase |
离线批量处理和数据分析 | Hive |
高并发实时缓存或会话管理 | Redis |
灵活存储和复杂查询场景 | MongoDB |
相关文章:
HBase、Hive、Redis 和 MongoDB的对比
1. 数据库管理 操作HBaseHiveRedisMongoDB创建数据库N/A (HBase 没有数据库概念)CREATE DATABASE db_name;N/A (Redis 没有数据库命名功能)use db_name; (自动创建)查看数据库N/ASHOW DATABASES;INFO 查看全局信息show dbs;删除数据库N/ADROP DATABASE db_name CASCADE;N/Adb.…...
前端在WebSocket中加入Token
在WebSocket通信中加入Token主要是为了实现身份验证和授权,确保只有经过验证的用户可以建立WebSocket连接。由于WebSocket API本身不支持直接在连接时设置HTTP头部,因此需要采用一些变通的方法来传递Token。以下是几种常见的方法: 1、通过UR…...
图解HTTP-HTTP报文
参考资料:图解HTTP HTTP报文 用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行(CR LF作为换行符)数据行构成的文本。 请求报文及响…...
后端使用Spring Boot框架 + 前端VUE 实现滑动模块验证码
在现在常用的登录验证码方式有很多种,但是都不可避免被攻击,但是有很多方式可以防止被攻击,从而进行维护。 现在我就讲解一下滑动块验证码的实现方式: 这个是前端代码,我使用的是vue,在使用的时候注意&am…...
NOTEBOOK_11 汽车电子设备分享(工作经验)
汽车电子设备分享 摘要 本文主要列出汽车电子应用的一些实验设备和生产设备,部分会给予一定推荐。目录 摘要一、通用工具:二、测量与测试仪器2.1测量仪器2.2无线通讯测量仪器2.3元器件测试仪2.4安规测试仪2.5电源供应器2.6电磁兼容测试设备2.7可靠性环境…...
Spring Mvc面试题(常见)
1 Spring MVC的执行流程 用户发起请求,请求先被Servlet拦截以后,转发给SpringMVC框架SpringMVC 里面的DispatcherServlet(核心控制器) 接收到请求,并转发给HandlerMappingHandlerMapping负责解析请求,根据请求信息和配置信息找到匹配的Controller类(当这里有配置拦截器,会…...
javaEE--计算机是如何工作的-1
目录 一.计算机的组成: 各组件的功能: 衡量cpu好坏的标准: 二.指令(instruction) 三.操作系统Operating System 四.进程/任务process/tesk 五.进程在系统中如何管理 1.进程在系统中的管理,从两个角度来分类: 2.进程控制块PCB(Process Control Block)) 3.P…...
【Mysql】函数有哪些
mysql函数有哪些? MySQL 提供了许多内置函数,用于执行各种操作,包括字符串处理、日期时间操作、数学计算、数据转换等。以下是一些常用的 MySQL 函数分类及其示例: 字符串函数 CONCAT(str1, str2, ...):将多个字符串…...
「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
本篇将带你实现一个评分统计工具,用户可以对多个选项进行评分。应用会实时更新每个选项的评分结果,并统计平均分。这一功能适合用于问卷调查或评分统计的场景。 关键词 UI互动应用评分统计状态管理数据处理多目标评分 一、功能说明 评分统计工具允许用…...
实验13 C语言连接和操作MySQL数据库
一、安装MySQL 1、使用包管理器安装MySQL sudo apt update sudo apt install mysql-server2、启动MySQL服务: sudo systemctl start mysql3、检查MySQL服务状态: sudo systemctl status mysql二、安装MySQL开发库 sudo apt-get install libmysqlcli…...
Azure虚拟机非托管磁盘大小调整
想要扩容一个Azure VM 的磁盘空间,门户里面竟然无法扩展,点点鼠标就完事的时代在离去,微软越来不想微软。 在门户里面即便使用Azure Cli命令行也不行。 PS /home/gpchina> az disk list [] 返回为空,根本没有返回磁盘。 不过使…...
MySQL数据库下载及安装教程
链接:MySQL数据库下载及安装教程(最最新版)_mysql下载安装-CSDN博客 亲测安装成功了💕 把这个路径放到系统环境变量里头 MD!我这安到C盘去了,就很烦🤬😡 在CMD登录试一下 mysql -h localhos…...
使用 UniApp 在微信小程序中实现 SSE 流式响应
概述 服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有用。 流式传输的特点是将数据逐步传输给客…...
基础数据结构---栈
顺序表实现 一、栈类的声明 栈是一种特殊的线性表,可以由顺序表来实现,也可以由链表来实现,这节课,我们采用顺序表来实现栈。 #include <iostream>#include <stdexcept>using namespace std;template<typename …...
Redis 最佳实践
这是以前写下来的文章,发出来备份一下 Redis 在企业中的最佳实践可以帮助提高性能、可用性和数据管理效率。以下是一些推荐的做法: 选择合适的数据结构: 根据需求选择适当的 Redis 数据结构(如 Strings、Lists、Sets、Hashes、So…...
前端零基础学习Day-Eight
CSS字体和文本样式 CSS文字样式 字体:font-family 语法:font-family:[字体1][,字体2][,…] p{font-family:“微软雅黑”,“宋体”,“黑体”;} 含空格字体名和中文,用英文引号括起 属性值:具体字体名,字体集 字体集&…...
在Vue3中实现文件上传功能,结合后端API
随着现代Web应用程序的不断发展,文件上传成为了用户交互中不可或缺的一部分。在本篇博客中,我们将深入讨论如何在Vue3中实现一个文件上传功能,并与后端API进行交互。我们将使用Vue3的Composition API(setup语法糖)来构…...
智慧商城:点击“加入购物车”判断是否登录来进行跳转到登录页登录并回跳 + 发请求渲染加入购物车数量的角标
点击“加入购物车”判断是否登录来进行跳转到登录页登录并回跳 按需引入需要的 Dialog 组件并进行全局注册 Vue.use( )仅仅在Vue组件的上下文中起作用,所以在Vue组件中通过 this.$ 来使用 在 js 文件中则还要导入,然后直接使用,并不需要 this…...
植物大战僵尸杂交版v3.0.2最新版本(附下载链接)
B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.0.2版本!!!,有b站账户的记得要给作者三连关注一下呀! 不多废话下载链接放上: 夸克网盘链接::https://pan.quark.cn/s/5c…...
后端统一接口返回状态【初步模板】
后端统一接口返回状态【模板】 文章目录 后端统一接口返回状态【模板】1 .Result类编写2 .Constants类编写3 .更改Controller层下的类return格式 开发过程中,每个接口的返回格式设计都是一样的,这样可以大大提高开发效率。 项目结构如下图:分…...
QML Text组件
文章目录 前言主体基本文本显示字体和样式富文本支持长文本的处理文本样式与效果超链接Label 元素总结 前言 在 QML 中,Text 和 Label 是常用的文本显示元素,它们在显示文本方面具有相似性,但在功能和定制性上也存在一些差异。Text 元素用于…...
cv2.addWeighted用法详解
cv2.addWeighted 是 OpenCV 中用于图像加权叠加的函数,常用于将两张图像按一定比例融合在一起。它通过对两张图像的像素进行加权和求和的操作,可以实现透明度调整、图像混合、图像融合等效果。 函数定义 cv2.addWeighted(src1, alpha, src2, beta, gam…...
基于微信小程序的消防隐患在线举报系统
博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…...
牛客网 SQL36查找后排序
SQL36查找后排序 select device_id,age from user_profile order by age asc #select [字段1,字段2] from [表名] order by [字段1] [升序(asc)/降序(desc)],[字段2] [升序(asc)/降序(desc)] #select:查询 #order by 排序 每日问题 如何实现对象的克隆࿱…...
Dart 中的构造函数
在 Dart 中,类的构造函数用于初始化类的对象。当你创建一个类的实例时,构造函数被自动调用。Dart 支持多种构造函数的写法,包括常规构造函数、命名构造函数、工厂构造函数等。 一、传统构造函数 默认构造函数是没有名字的构造函数ÿ…...
实现 WebSocket 接入文心一言
目录 什么是 WebSocket? 为什么需要 WebSocket? HTTP 的局限性 WebSocket 的优势 总结:HTTP 和 WebSocket 的区别 WebSocket 的劣势 WebSocket 常见应用场景 WebSocket 握手过程 WebSocket 事件处理和生命周期 WebSocket 心跳机制 …...
GO--堆(have TODO)
堆 堆(Heap)是一种特殊的数据结构。它是一棵完全二叉树(完全二叉树是指除了最后一层外,每一层上的节点数都是满的,并且最后一层的节点都集中在左边),结放在数组(切片)中…...
【Python随笔】Enigma密码机的原理及python代码实现
最近笔者接触到了Cypher这款游戏,玩法很简单,就是通过文字、图片等各种表达手段组成的谜面,猜一段英文,算是初步接触了密码学的一些知识。游戏中提到了很多类型的密码,其中Enigma密码机就是单独一种,在电影…...
二叉树 -- 堆(详解)
目录 1、堆的概念及结构 2、堆的实现(附代码) 2.1、向下调整算法建堆 3、堆的应用(附代码) 3.1、堆排序 3.2、TOP-K问题 1、堆的概念及结构 如果有一个关键码的集合K { k0,k1 ,k2 ,…,k(n-1) },把它的所有元素…...
gradle项目下载依赖报错
报错信息 Cannot resolve external dependency org.projectlombok:lombok:1.18.36 because no repositories are defined. Required by:project :Possible solution:- Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/…...
WPS怎么都无法删除空白页_插入空白页一次插入两张?_插入横屏空白页_横屏摆放图片_这样解决_显示隐藏段落标记---WPS工作笔记001
在wps使用的过程中你们有没有碰到过这种问题,就是,我贴图,因为图片太大,我需要把图片,横屏显示,这个时候我需要插入一个空白页,那么,在空白菜单下,点击,有时候会点击插入空白页,会一下子自动插入两张空白页.而且,怎么删除都删除不掉. 都快疯掉了. 网上搜索也没有找到好的方法,后…...
flask before_request 请求拦截器返回无值则放行,有值则拦截
环境 Python 3.11.5 Flask 2.2.2完整代码如下: from flask import Flask, make_response, Blueprintapp Flask(__name__) user_blue Blueprint(user, __name__, url_prefix/api/user) user_blue.before_request def befor…...
前端XMLHttpRequest get请求能不能在body中传参数?
文档 查看mdn文档,文档XMLHttpRequest.send()有提到: XMLHttpRequest.send() 方法接受一个可选的参数,其作为请求主体;如果请求方法是 GET 或者 HEAD,则应将请求主体设置为 null。 测试 一个简单的nodejs服务器 var…...
C语言的函数指针
介绍案例 什么是函数指针? 函数指针 是指向函数的指针变量,它可以用来间接调用函数。在 C/C 中,函数指针允许程序在运行时选择调用不同的函数,这使得代码更加灵活和动态。函数指针广泛应用于回调函数、事件处理、动态选择算法等…...
网络安全的学习方向和路线是怎么样的?
石器时代 第一个阶段——石器时代,针对的是纯新手小白刚刚入场。在这个阶段,主要是打基础,需要学习的有五部分内容: Windows Windows上基础的一些命令、PowerShell的使用和简单脚本编写,以及Windows以后经常会打交道…...
酒蒙子骰子小程序系统
酒蒙子流量变现小程序小游戏 后端tp8 前端uniapp 会员变现 分销推广 流量主 …...
html+css网页设计 美食 餐饮杰12个页面
htmlcss网页设计 美食 餐饮杰12个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1ÿ…...
【济大期末数据库】SQL语法速成
目录 SQL分类 DDL 概念 语法 操作数据库: 1.查询所有数据库 2.查询当前数据库 3.创建数据库 4.删除数据库 5.切换数据库 操作数据库内的表: 1.查询当前数据库所有表 2.查看指定表结构 3.创建表 DML 概念 语法 增(INSERT&am…...
WeakAuras NES Script(lua)
WeakAuras NES Script 修星脚本字符串 脚本1:NES !WA:2!TMZFWXX1zDxVAs4siiRKiBN4eV(sTRKZ5Z6opYbhQQSoPtsxr(K8ENSJtS50(J3D7wV3UBF7E6hgmKOXdjKsgAvZFaPTtte0mD60XdCmmecDMKruyykDcplAZiGPfWtSsag6myGuOuq89EVDV9wPvKeGBM7U99EFVVVV33VFFB8Z2TJ8azYMlZj7Ur3QDR(…...
国内网络在Ubuntu 22.04中在线安装Ollama并配置Open-WebuiDify
配置docker科技网络 登录后复制 创建或编辑 Docker 配置文件 让docker使用代理: sudo mkdir /etc/systemd/system/docker.service.d -p sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf 文件,并添加以下内容: [Service] En…...
SQL 插入数据详解
本文介绍如何利用 SQL 的 INSERT 语句将数据插入表中。 1. 数据插入 顾名思义,INSERT 用来将行插入(或添加)到数据库表。插入有几种方式: 插入完整的行;插入行的一部分;插入某些查询的结果。 下面逐一介…...
中小学教室多媒体电脑安全登录解决方案
中小学教室多媒体电脑面临学生随意登录的问题,主要涉及到设备使用、网络安全、教学秩序等多个方面。以下是对这一问题的详细分析: 一、设备使用问题 1. 设备损坏风险 学生随意登录可能导致多媒体电脑设备过度使用,增加设备损坏的风险。不当…...
Element@2.15.14-tree checkStrictly 状态实现父项联动子项,实现节点自定义编辑、新增、删除功能
背景:现在有一个新需求,需要借助树结构来实现词库的分类管理,树的节点是不同的分类,不同的分类可以有自己的词库,所以父子节点是互不影响的;同样为了选择的方便性,提出了新需求,选择…...
Pycharm和Jupyter Notebook的比较【笔记】
1、Pycharm 特点: (1)集成开发环境(IDE):提供了丰富的功能,如代码自动补全、错误检查、调试工具等。 (2)项目管理:支持大型项目的管理和组织,适合…...
MongoDB(下)
MongoDB 索引 MongoDB 索引有什么用? 和关系型数据库类似,MongoDB 中也有索引。索引的目的主要是用来提高查询效率,如果没有索引的话,MongoDB 必须执行 集合扫描 ,即扫描集合中的每个文档,以选择与查询语句匹配的文…...
AI Agent与MEME:技术与文化融合驱动Web3创新
AI Agent如何引领Web3新时代? 随着Web3与区块链技术的迅速发展,AI Agent作为人工智能与区块链的交汇点,正在逐步成为推动去中心化生态的重要力量。同时,MEME文化凭借其强大的社区驱动力和文化渗透力,在链上生态中扮演着…...
前端如何将pdf等文件传入后端
我们知道在js中我们可以通过: <input type"file" name"file" id"fileInput" accept"image/*">来输入文件。其中type指后端url,accept来限制传入类型。 前端通过表单形式将其传入后端 那么前端是怎么将…...
山景BP1048蓝牙音频任务后台运行设置方法
1、 问题 山景BP1048提供的蓝牙音箱SDK蓝牙音频是不能在后台运行的。例如:现在进入U盘模式播放蓝牙音乐,那么此时蓝牙就会关闭。 但是在特定场景下,需要蓝牙保持连接。 2、解决办法 打开sys_param.c文件 #include <string.h> #incl…...
【服务器】服务器进程运行不受本地终端影响的方法总结
服务器进程运行不受本地终端影响的方法总结 1. 使用 nohup2. 使用 setsid3. 将命令放入后台 (&)总结参考 为了确保在集群或服务器上运行的长时间作业不受本地计算机网络中断或用户注销的影响,可以使用以下三种方法:nohup、setsid 和将命令放入后台 (…...
[数据结构] 链表
目录 1.链表的基本概念 2.链表的实现 -- 节点的构造和链接 节点如何构造? 如何将链表关联起来? 3.链表的方法(功能) 1).display() -- 链表的遍历 2).size() -- 求链表的长度 3).addFirst(int val) -- 头插法 4).addLast(int val) -- 尾插法 5).addIndex -- 在任意位置…...