何时在 SQL 中使用 CHAR、VARCHAR 和 VARCHAR(MAX)
在管理数据库表时,考虑 CHAR、VARCHAR 和 VARCHAR(MAX) 是必不可少的。此外,使用正确的工具(例如dbForge Studio for SQL Server) ,与数据库相关的任务都会变得更加容易。它是针对 SQL Server 专业人员的强大的一体化解决方案,提供直观的可视化数据编辑器,可帮助您以最方便的方式管理所有类型的数据以及执行所有其他数据库开发、管理和管理任务。
dbForge Studio for for SQL Sever最新版试用
数据类型是一种特殊的数据项,由其可以采用的值和可以对其执行的操作定义。SQL 支持各种数据类型,包括数字、日期和时间、字符和字符串、二进制等。数据类型的选择会影响数据完整性、存储和性能;最佳数据类型的选择并不总是那么明显。
本文将重点介绍三种常用的数据类型:CHAR、VARCHAR和VARCHAR(MAX),比较和讨论它们的特点和用途。
SQL 中的字符数据类型
字符数据类型存储字母数字数据,包括字母、数字、符号和空格。这些类型可以是固定大小 (CHAR) 或可变大小 (VARCHAR)。自 SQL Server 2019 起,字符数据类型支持使用 UTF-8 编码的所有 Unicode 字符。但是,如果应用了非 UTF-8 排序规则,CHAR 和 VARCHAR 将仅存储该排序规则的相应代码页支持的字符子集。
选择最佳字符数据类型很重要,原因如下:
- 查询性能:数据类型的选择会影响性能。例如,CHAR 可以更快,因为它避免了长度计算,而 VARCHAR 更适合具有不同数据长度的列。
- 数据完整性:字符数据类型确保文本数据满足特定规则,例如遵守最大长度。然而,这有时会导致与其他数据库或系统的兼容性问题。
- 存储效率:数据类型直接影响存储要求。例如,CHAR(50) 始终分配 50 个字节,而不管实际数据长度是多少,而 VARCHAR(50) 仅使用实际数据所需的空间加上 2 个字节。
让我们更深入地了解字符数据类型的具体内容。
CHAR – 固定长度数据类型
CHAR(n) 数据类型专为固定长度的非 Unicode 字符数据而设计,其中n指定字符串大小(以字节为单位)(范围从 1 到 8,000)。它可以存储任何字符 - 字母、数字、符号,甚至空字符。如果存储的数据短于定义的长度,数据库会用空格填充以满足固定长度。
CHAR 数据类型适用于保持一致长度的数据,例如电话号码或邮政编码。
CHAR 的优势
- 统一数据长度:CHAR 适合存储大小一致的标准化标识符
- 可预测的存储:固定长度可以更容易地确定所需的存储并优化性能
- 访问速度更快:不需要进行可变长度的计算,从而略微提高速度
- 更简单的索引:固定长度的数据允许统一的索引条目,从而可以提高索引速度
- 减少行碎片:在高更新环境中,CHAR 列不太容易出现碎片
- 数据完整性:CHAR 可以存储空格而不是 NULL,从而实现非空约束,而无需对空值进行复杂的处理
CHAR 的缺点
- 用空格填充:长度小于定义长度的数据将自动用空格填充,这可能会使检索变得复杂
- 更高的磁盘使用率:CHAR 列会消耗更多存储空间,尤其是当许多条目短于定义的长度时
- 灵活性降低:模式匹配等操作可能由于尾随空格而需要额外修剪
- 固定设计:更改 CHAR 列的长度需要更改架构,这可能很麻烦
CHAR 通常用于小型、频繁查询的查找表,例如用于状态跟踪或代码验证的查找表。固定长度可提高性能,当数据完整性和可预测架构比存储效率更重要时,CHAR 是理想之选。但是,CHAR 不太适合长度不等的数据,在这种情况下,建议使用 VARCHAR 作为更灵活且存储效率更高的选项。
VARCHAR – 可变长度数据类型
VARCHAR 是一种可变长度的字符串数据类型,最大长度为 8,000 个字符。它可以存储任何字符,包括数字、字母、特殊字符、非打印字符和 ASCII 空字符。
VARCHAR 字符串中的每个字符占用 1 个字节。与固定长度的列不同,VARCHAR 仅占用存储实际数据所需的空间,而无需填充。尽管由于长度计算,VARCHAR 的性能可能略低于 CHAR,但 VARCHAR 可显著节省存储空间。
VARCHAR 的优点
- 高效存储:VARCHAR 仅将空间用于存储数据,而 CHAR 则不同,即使数据较短,它也会始终分配固定大小
- 灵活性:VARCHAR 非常适合可变长度的数据,例如名称、地址和描述
- 提高较小数据的性能:无需处理空白空间,计算可避免不必要的 I/O 和内存使用
- 可调长度:您可以设置最大长度(如 VARCHAR(255)),从而根据预期数据大小控制存储
VARCHAR 的缺点
- 潜在的性能影响:处理可变长度可能会增加内存管理的复杂性,并减慢从大表中检索数据的速度
- 索引挑战:VARCHAR 列上的索引可能比固定长度列上的索引更慢且效率更低,尤其是在大型数据集中
- 排序和比较开销:由于长度可变,对 VARCHAR 数据进行排序和比较可能需要额外的处理
- 对于持续较短的数据,效率低下:如果 VARCHAR 字段中的数据通常短于最大长度,则 CHAR 可能更高效
- 数据截断风险:如果数据长度超过指定的最大值,则可能会发生截断,从而导致数据丢失
虽然 VARCHAR 具有许多优点,但对于索引量很大的大型应用程序或长度变化最小的数据来说,它可能不是最佳选择。在这种情况下,CHAR 或其他数据类型可能更有效。
VARCHAR(MAX) – 最大文本存储
VARCHAR(MAX) 数据类型支持最大 2 GB 的可变长度字符串,非常适合存储大量文本。
注意事项:
- VARCHAR(MAX) 列不允许固定长度限制
- VARCHAR(MAX) 列不能用作索引中的键列
VARCHAR(MAX) 的优点
- 灵活的数据大小:VARCHAR(MAX) 容量高达 2 GB,适用于需要存储高度可变文本(如评论或注释)的应用程序
- 优化空间:较小的 VARCHAR(MAX) 值与其他数据一起存储在行内,当数据超过 8 KB 时,会移出行外,并在适当位置存储一个指针
- 减少架构更改:使用 VARCHAR(MAX) 可最大限度地减少数据增长时架构更新的需要
- 存储 JSON 或 XML 数据:VARCHAR(MAX) 非常适合存储大型、可变长度的 JSON 或 XML 数据
VARCHAR(MAX) 的缺点
- 潜在的性能影响:VARCHAR(MAX) 可能会降低查询性能,尤其是在不需要大量数据存储时
- 索引受限:VARCHAR(MAX) 列不能直接被索引,这限制了它们在搜索、过滤和排序操作中的有效性
- 内存使用率高:加载多个大字符串会给服务器内存造成压力,而将数据移出行外需要额外的指针存储空间
- 兼容性问题:GROUP BY 和 DISTINCT 等操作可能未针对长度高度可变的 VARCHAR(MAX) 列进行完全优化
- 锁定冲突:在 VARCHAR(MAX) 列中存储和更新大量数据可能会导致表或页面锁定,从而降低性能
- 数据过载的风险:如果没有长度限制,很容易插入超过必要数量的数据,从而影响数据一致性
VARCHAR(MAX) 数据类型有助于处理大型文本数据,但应谨慎使用。当数据长度变化很大且可能超过 8,000 字节时,它最合适。对于较小、可预测的文本大小,固定长度的 CHAR 字段通常更有效。
TEXT – 已弃用的大型文本数据类型
TEXT 数据类型用于存储大量文本数据,包括区域设置支持的单字节和多字节字符。一个表最多可以包含 195 个 TEXT 数据类型的列。
在 SQL Server 中,自 SQL Server 2005 起已弃用 TEXT 数据类型。Microsoft 建议使用 VARCHAR(MAX) 或 NVARCHAR(MAX) 进行开发,因为在即将推出的 SQL Server 版本中将删除对 TEXT 数据类型的支持。
CHAR、VARCHAR 和 VARCHAR(MAX) 之间的区别
下表描述了 CHAR、VARCHAR 和 VARCHAR(MAX) 数据类型之间的区别:
使用字符数据类型时的常见错误
使用 CHAR、VARCHAR 和 VARCHAR(MAX) 可能会导致数据库专家应注意的特定错误。下面,我们将介绍与这些数据类型相关的最常见问题以及如何解决这些问题。
- 截断错误:当用户尝试插入长度超过 CHAR 或 VARCHAR 列定义长度的字符串时,会发生截断,从而导致数据被截断。为防止这种情况,请确保数据长度与列允许的长度相匹配。
- VARCHAR(MAX) 的误用:VARCHAR(MAX) 经常被误用,例如对于包含小型固定大小数据的列,CHAR 是合适的。将数据类型与目标数据相匹配至关重要。
- CHAR 中的尾随空格:CHAR 数据类型会用空格填充字符串以达到指定的长度,这可能会导致比较和 JOIN 中出现意外行为。为避免这些问题,请对不需要填充的可变长度字符串使用 VARCHAR。
- 数据迁移和兼容性问题:从其他系统迁移数据可能会导致 CHAR 和 VARCHAR 值不一致,从而导致截断或填充问题。在开始迁移过程之前,请标准化数据长度和格式,以尽量减少这些问题。
如何选择正确的数据类型
之前,我们讨论了 CHAR、VARCHAR 和 VARCHAR(MAX) 用法的各个方面。选择正确的类型取决于数据特征、长度要求、存储和性能考虑。下表总结了这些信息。
结论
在管理数据库表时,考虑 CHAR、VARCHAR 和 VARCHAR(MAX) 是必不可少的。本文介绍了这些数据类型及其独特特性,以帮助您针对每种特定情况选择正确的选项。
此外,使用正确的工具(例如dbForge Studio for SQL Server) ,与数据库相关的任务都会变得更加容易。
相关文章:
何时在 SQL 中使用 CHAR、VARCHAR 和 VARCHAR(MAX)
在管理数据库表时,考虑 CHAR、VARCHAR 和 VARCHAR(MAX) 是必不可少的。此外,使用正确的工具(例如dbForge Studio for SQL Server) ,与数据库相关的任务都会变得更加容易。它是针对 SQL Server 专业人员的强大的一体化解…...
pnpm安装electron出现postinstall$ node install.js报错
pnpm install --registryhttp://registry.npm.taobao.org安装依赖包的时候出现了postinstall$ node install.js报错 找到install.js 找到downloadArtifact方法,添加如下代码 mirrorOptions:{mirror:"http://npmmirror.com/mirrors/electron/"}http://n…...
如何从 Hugging Face 数据集中随机采样数据并保存为新的 Arrow 文件
如何从 Hugging Face 数据集中随机采样数据并保存为新的 Arrow 文件 在使用 Hugging Face 的数据集进行模型训练时,有时我们并不需要整个数据集,尤其是当数据集非常大时。为了节省存储空间和提高训练效率,我们可以从数据集中随机采样一部分数…...
Rook入门:打造云原生Ceph存储的全面学习路径(上)
文章目录 一.Rook简介二.Rook与Ceph架构2.1 Rook结构体系2.2 Rook包含组件2.3 Rook与kubernetes结合的架构图如下2.4 ceph特点2.5 ceph架构2.6 ceph组件 三.Rook部署Ceph集群3.1 部署条件3.2 获取rook最新版本3.3 rook资源文件目录结构3.4 部署Rook/CRD/Ceph集群3.5 查看rook部…...
AWS账号提额
Lightsail提额 控制台右上角,用户名点开,选择Service Quotas 在导航栏中AWS服务中找到lightsail点进去 在搜索框搜索instance找到相应的实例类型申请配额 4.根据自己的需求选择要提额的地区 5.根据需求来提升配额数量,提升小额配额等大约1小时生效 Ligh…...
计算机网络(三)
一个IP包,其数据长度为4900字节,通过一个MTU为1220字节的网络时,路由器的分片情况如何?请用图表的形式表示出路由器分片情况。 已知 IP 包的数据长度为 4900 字节,IP 首部长度通常为 20 字节,所以整个 IP …...
去哪儿Android面试题及参考答案
TCP 的三次握手与四次挥手过程是什么? TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议 ,三次握手和四次挥手是其建立连接和断开连接的重要过程。 三次握手过程 第一次握手:客户端向服务器发送一个 SYN(同步序列号)包,其中包…...
探索温度计的数字化设计:一个可视化温度数据的Web图表案例
随着科技的发展,数据可视化在各个领域中的应用越来越广泛。在温度监控和展示方面,传统的温度计已逐渐被数字化温度计所取代。本文将介绍一个使用Echarts库创建的温度计Web图表,该图表通过动态数据可视化展示了温度值,并通过渐变色…...
JS API事件监听(绑定)
事件监听 语法 元素对象.addEventListener(事件监听,要执行的函数) 事件监听三要素 事件源:那个dom元素被事件触发了,要获取dom元素 事件类型:用说明方式触发,比如鼠标单击click、鼠标经过mouseover等 事件调用的函数&#x…...
【k8s】kube-state-metrics 和 metrics-server
kube-state-metrics 和 metrics-server 是 Kubernetes 生态系统中两个重要的监控组件,但它们的功能和用途有所不同。下面是对这两个组件的详细介绍: kube-state-metrics 功能: kube-state-metrics 是一个简单的服务,它监听 Kub…...
Linux设置开启启动脚本
1.问题 每次启动虚拟机需要手动启动网络,不然没有enss33选项 需要启动 /mnt/hgfs/dft_shared/init_env/initaial_env.sh 文件 2.解决方案 2.1 修改/etc/rc.d/rc.local 文件 /etc/rc.d/rc.local 文件会在 Linux 系统各项服务都启动完毕之后再被运行。所以你想要…...
数据结构-图(一)
文章目录 图一、图的基本概念(一)图的定义(二)有向图与无向图(三)顶点的度、入度与出度(四)路径、回路与连通图 二、图的存储及基本操作(一)邻接矩阵…...
SQL面试题——抖音SQL面试题 最近一笔有效订单
最近一笔有效订单 题目背景如下,现有订单表order,包含订单ID,订单时间,下单用户,当前订单是否有效 +---------+----------------------+----------+-----------+ | ord_id | ord_time | user_id | is_valid | +---------+----------------------+--------…...
【人工智能基础05】决策树模型
文章目录 一. 基础内容1. 决策树基本原理1.1. 定义1.2. 表示成条件概率 2. 决策树的训练算法2.1. 划分选择的算法信息增益(ID3 算法)信息增益比(C4.5 算法)基尼指数(CART 算法)举例说明:计算各个…...
远程桌面协助控制软件 RustDesk v1.3.3 多语言中文版
RustDesk 是一款开源的远程桌面软件,支持多平台操作,包括Windows、macOS、Linux、iOS、Android和Web。它提供端到端加密和基于角色的访问控制,确保安全性和隐私保护。使用简单,无需复杂配置,通过输入ID和密码即可快速连…...
git的学习笔记
一,git的安装 mac电脑的安装 xcode-select --install windows安装,用指令麻烦一些 随便找个视频观看看教程,去官网下载就可以了。 centos安装 sudo yum install git -y ubuntu安装 sudo apt-get install git -y 查看git安装的版本 git --ver…...
【目标检测】YOLO:深度挖掘YOLO的性能指标。
YOLO 性能指标 1、物体检测指标2、性能评估指标详解2.1 平均精度(mAP)2.2 每秒帧数(FPS)2.3 交并比(IoU)2.4 混淆矩阵(Confusion Matrix)2.5 F1-Score2.6 PR曲线(Precisi…...
第一届帕鲁杯”应急响应“解析-上部分
这个帕鲁杯是一个模拟真实生产场景的应急响应题目,这个具有拓扑网络结构,考察综合能力以及对各个系统的应急响应 网络拓扑结构图如下 相关的资产情况如下 mysql01:10.66.1.10mysql02:10.66.1.11PC01:10.66.1.12PC02…...
前端http,ws拉流播放视频
可以在西瓜播放器官网APi调试拉取的视频流是否可以播放 类似http拉流地址为:http://localhost:8866/live?urlrtsp://admin:admin123192.168.11.50:554/cam/realmonitor?channel1&subtype01 <!DOCTYPE html> <html><head><meta charset…...
揭开广告引擎的神秘面纱:如何在0.1秒内精准匹配用户需求?
目录 一、广告系统与广告引擎介绍 (一)广告系统与广告粗分 (二)广告引擎在广告系统中的重要性分析 二、广告引擎整体架构和工作过程 (一)一般概述 (二)核心功能架构图 三、标…...
【2024】使用Docker搭建redis sentinel哨兵模式集群全流程(包含部署、测试、错误点指正以及直接部署)
目录💻 前言**Docker Compose介绍**最终实现效果 一、搭建集群1、创建文件结构2、创建redis节点3、验证节点4、创建sentinel哨兵5、验证Sentinel功能 二、spring连接1、添加依赖2、添加配置3、启动测试 三、直接部署流程1、拉取配置2、修改端口创建 前言 本篇文章主…...
Spring WebFlux与Spring MVC
Spring WebFlux 是对 Spring Boot 项目中传统 Spring MVC 部分的一种替代选择,主要是为了解决现代 Web 应用在高并发和低延迟场景下的性能瓶颈。 1.WebFlux 是对 Spring MVC 的替代 架构替代: Spring MVC 使用的是基于 Servlet 规范的阻塞式模型…...
江协科技最新OLED保姆级移植hal库
江协科技最新OLED移植到hal库保姆级步骤 源码工程存档 工程和源码下载(密码 1i8y) 原因 江协科技的开源OLED封装的非常完美, 可以满足我们日常的大部分开发, 如果可以用在hal库 ,将是如虎添翼, 为我们开发调试又增加一个新的瑞士军刀, 所以我们接下来手把手的去官网移植源码…...
Vue框架开发一个简单的购物车(Vue.js)
让我们利用所学知识来开发一个简单的购物车 (记得暴露属性和方法!!!) 首先来看一下最基本的一个html框架 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…...
探索嵌入式硬件设计:揭秘智能设备的心脏
目录 引言 嵌入式系统简介 嵌入式硬件设计的组成部分 设计流程 微控制器选择 原理图设计 PCB布局 编程与调试 系统集成与测试 深入理解微控制器 存储器管理 输入/输出接口 通信接口 电源管理 硬件抽象层(HAL) 操作系统(OS&am…...
逆向攻防世界CTF系列42-reverse_re3
逆向攻防世界CTF系列42-reverse_re3 参考:CTF-reverse-reverse_re3(全网最详细wp,超4000字有效解析)_ctfreverse题目-CSDN博客 64位无壳 _int64 __fastcall main(__int64 a1, char **a2, char **a3) {int v4; // [rsp4h] [rbp-…...
AIGC时代 | 如何从零开始学网页设计及3D编程
文章目录 一、网页设计入门1. 基础知识2. 学习平台与资源3. 示例代码:简单的HTMLCSSJavaScript网页 二、3D编程入门1. 基础知识2. 学习平台与资源3. 示例代码:简单的Unity 3D游戏 《编程真好玩:从零开始学网页设计及3D编程》内容简介作者简介…...
EMall实践DDD模拟电商系统总结
目录 一、事件风暴 二、系统用例 三、领域上下文 四、架构设计 (一)六边形架构 (二)系统分层 五、系统实现 (一)项目结构 (二)提交订单功能实现 (三࿰…...
基于多VSG独立微网的多目标二次控制MATLAB仿真模型
“电气仔推送”获得资料(专享优惠) 模型简介 本文将一致性算法引入微电网的二次频率和电压控制,自适应调节功率参考值和补偿电压,同时实现频率电压恢复、有功 无功功率的比例均分以及功率振荡抑制,提高系统的暂态和稳…...
自动化运维(k8s)之微服务信息自动抓取:namespaceName、deploymentName等全解析
前言:公司云原生k8s二开工程师发了一串通用性命令用来查询以下数值,我想着能不能将这命令写成一个自动化脚本。 起初设计的 版本一:开头加一条环境变量,执行脚本后,提示输入:需要查询的命名空间,…...
nginx 代理 web service 提供 soap + xml 服务
nginx 代理 web service 提供 soap xml 服务 最关键的配置: # Nginx默认反向后的端口为80,因此存在被代理后的端口为80的问题,这就导致访问出错。主要原因在Nginx的配置文件的host配置时没有设置响应的端口。Host配置只有host,没有对应的p…...
深入理解 MongoDB:一款灵活高效的 NoSQL 数据库
在现代应用程序开发中,数据存储技术已经从传统的关系型数据库(RDBMS)扩展到多样化的 NoSQL 数据库。MongoDB 作为一款广泛使用的文档型数据库,以其灵活性、高性能和易用性成为开发者的首选之一。本篇博文将从 MongoDB 的核心概念、…...
vue3 + vite + antdv 项目中自定义图标
前言: 去iconfont-阿里巴巴矢量图标库 下载自己需要的icon图标,下载格式为svg;项目中在存放静态资源的文件夹下 assets 创建一个存放svg格式的图片的文件夹。 步骤: 1、安装vite-plugin-svg-icons npm i vite-plugin-svg-icons …...
PDF版地形图矢量出现的问题
项目描述:已建风电场道路测绘项目,收集到的数据为PDF版本的地形图,图上标注了项目竣工时期的现状,之后项目对施工区域进行了复垦恢复地貌,现阶段需要准确的知道实际复垦修复之后的道路及其它临时用地的面积 解决方法&…...
JavaScript 高级教程:异步编程、面向对象与性能优化
在前两篇教程中,我们学习了 JavaScript 的基础和进阶内容。这篇文章将带领你进入更深层次,学习 JavaScript 的异步编程模型、面向对象编程(OOP),以及性能优化的技巧。这些内容对于构建复杂、流畅的前端应用至关重要。 …...
有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。-多语言
目录 C 语言实现 Python 实现 Java 实现 Js 实现 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移…...
OCR实现微信截图改名
pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple/ ──(Sat,Nov30)─┘ pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install paddleo…...
c++stl模板总结
stl 总结stl模板vectordequelistforward_liststl集合类set&unorder_setmap&unorder_map 自适应容器栈和队列stackqueuepriority_queue 总结stl模板 vector 1.初始化 vector具有多个重载的构造函数,可以在实例化vector时指定他开始时应该包含的元素个数以…...
文本生成类(机器翻译)系统评估
在机器翻译任务中常用评价指标:BLEU、ROGUE、METEOR、PPL。 这些指标的缺点:只能反应模型输出是否类似于测试文本。 BLUE(Bilingual Evaluation Understudy):是用于评估模型生成的句子(candidate)和实际句子(referen…...
Harmony NEXT-越过相机读写权限上传图片至项目云存储中
问题成因 在制作用户注册登录界面时想要实现用户头像上传共能,查询API文档,发现有picker和PhotoAccessHelper两个包可以选择使用,但是在使用PhotoAccessHelper包拉起相册并读入所选的照片后将该照片传入云存储中产生报错,需要相册…...
C++算法练习-day53——17.电话号码的字母组合
题目来源:. - 力扣(LeetCode) 题目思路分析 题目要求我们将一个数字字符串(每个数字对应一组字母,如2对应abc,3对应def等)转换成所有可能的字母组合。这是一个典型的组合生成问题,…...
计算机网络性能
任何一个系统都可以或需要不同的指标来度量系统的优劣、状态或特性。计算机网络是综合计算机技术与通信技术的复杂系统,可以通过许多指标对一个计算机网络的整体或局部、全面或部分、静态或动态等不同方面的性能进行度量与评价 1、传输时延 当一个分组在输出链路发…...
MAC卸载Vmware Fusion后无法再安装解决方案
MAC卸载Vmware Fusion后无法再安装解决方案 执行脚本 sudo rm -rf /Library/Application Support/VMware/VMware Fusion sudo rm -rf /Library/Application Support/VMware/Usbarb.rules sudo rm -rf /Library/Application Support/VMware Fusion sudo rm -rf /Library/Prefe…...
windows 服务器角色
windows 服务器角色 Active Directory Rights Management Services Active Directory RightsManagement Services (AD RS)帮助保护信息,防止未授权使用。AD RMS 将建立用户标识,并为授权用户提供受保护信息的许可证。 ServicesActive Directory 联合身…...
NAT学习手册
NAT(Network Address Translation,网络地址转换)是一种在局域网(LAN)内部使用私有地址,而在连接到互联网时将这些私有地址转换为全球唯一且有效的公网地址的技术。这种技术的主要目的是解决IPv4地址空间不足…...
python -从文件夹批量提取pdf文章的第n页,并存储起来
python -从文件夹批量提取pdf文章的第n页,并存储起来 废话不多说,看下面代码 讲解一下下面代码 reader PyPDF2.PdfReader (file) 将文件转化为PdfReader 对象,方便使用内置方法。 first_page reader.pages[0] 提取第一页 writer PyPDF…...
RPC中定时器制作思路
定时器设计 time_event time_event 类用来封装定时时间,内部需要包含一个任务执行时间,是否重复标记、是否取消标记,对于重复任务,还需要一个重复间隔时间。以及一个回调函数,用来执行任务到期后需要执行的动作。 构…...
Flutter简单实现滑块验证
现在实现一个 Flutter 滑动验证组件,类似于许多网站和应用程序中常见的“滑动以验证”功能。它通过滑动一个滑块来完成验证操作,用户需要将滑块拖动到指定位置以完成验证。 前置知识点整理 StatefulWidget 在 Flutter 中,StatefulWidget 是…...
第33周:运动鞋识别(Tensorflow实战第五周)
目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 1.3 查看数据 二、数据预处理 2.1 加载数据 2.2 可视化数据 2.3 再次检查数据 2.4 配置数据集 2.4.1 基本概念介绍 2.4.2 代码完成 三、构建CNN网络 四、训练模型 4.1 设置动态学习率 4.2 早停与保存最佳模型…...
C#中switch语句使用
编写一个程序,使用switch语句将用户输入的分数转换成等级,如表 private static void Main(string[] args) { Console.WriteLine("请输入分数:"); int score int.Parse(Console.ReadLine()); switch (score) …...