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

【mysql】—— 数据类型详解

序言:

本期我将大家认识关于 mysql 数据库中的基本数据类型的学习。通过本篇文章,我相信大家对mysql 数据类型的理解都会更加深刻。

MySQL标志矢量图 - 设计之家

目录

(一)数据类型分类

(二)数值类型

1、tinyint类型

2、bit类型

3、小数类型

float类型

decimal

4、字符串类型

char

varchar

char和varchar比较

日期和时间类型

enum和set

总结


(一)数据类型分类

首先,在我们正式的学习数据类型之前,我们需要知道有哪些数据类型在mysql数据库中。因此,接下来我首先带大家认识具体有哪些数据类型。

💨 MySQL中的数据类型可以分为以下几个主要分类:

1️⃣数值类型

  • 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等。
  • 浮点数类型:FLOAT、DOUBLE等。
  • 定点数类型:DECIMAL。

2️⃣字符串类型

  • 固定长度字符串:CHAR。
  • 可变长度字符串:VARCHAR。
  • 大文本类型:TEXT。

3️⃣日期和时间类型

  • DATE:日期。
  • TIME:时间。
  • DATETIME:日期和时间。
  • TIMESTAMP:时间戳。

4️⃣ 布尔类型

  • BOOL、BOOLEAN。

5️⃣枚举和集合类型

  • ENUM:从预定义值列表中选择一个值。
  • SET:从预定义值集合中选择多个值。

6️⃣二进制类型

  • BLOB:用于存储二进制数据。

7️⃣ JSON类型:用于存储和处理JSON格式的数据。

 8️⃣空间数据类型:用于处理地理空间数据。

最后,我给大家整理总结了一张表,大家可以直观的去感受(对于其中红色的是需要大家掌握的,其余的等到需要用到的时候在学习不迟!!)

MySQL的数据类型都有哪些?它们分别用在什么的场景?_人山人海肉最可爱的博客-CSDN博客_数据类型有哪几种

【小结】

这些数据类型可以根据需求在MySQL表的列定义中使用。在选择数据类型时,需要考虑存储需求、数据的精度要求、操作和计算的效率等因素。此外,MySQL还支持一些特殊的数据类型和存储引擎相关的数据类型,如GEOMETRY、POINT、XML等,可以根据具体需求选择使用。


(二)数值类型

下面是一些常用的数据类型值:

MySQL常见数据类型详解_mysql中 数值数据类型包括2种,分别是( )数据类型和( )数据类型。_你走开``的博客-CSDN博客


1、tinyint类型

MySQL中的 TINYINT 类型是一种整数类型,用于存储小整数值,占用1个字节的存储空间。

下面是关于TINYINT类型的详解

数据范围和存储空间:

  • 有符号(默认):范围为-128到127,占用1字节的存储空间
  • 无符号:范围为0到255,占用1字节的存储空间

用途:

  • TINYINT通常用于存储布尔值(0或1),表示真或假。
  • 也可以用于存储较小的整数值。

有符号和无符号:

  • 默认情况下,TINYINT是有符号的,范围为 [-128,127]
  • 可以使用 UNSIGNED 关键字来声明TINYINT为无符号,范围变为【0,255】

存储方式:

  • TINYINT类型的值以二进制格式存储。对于有符号类型,最高位(最左边的位)表示正负号,‘0’ 表示正数,‘1’表示负数
  • 在使用时,MySQL会根据需要将二进制值转换为可读的整数形式。

💨 示例:

  • 数值越界测试

①创建一个TINYINT列:

 

②插入数据:

 

 ③查询数据:

【小结】 

  •  上述,我们已经成功的进行了相关的测试。

但是接下来,我在插入这样的数据,看最终是否还能成功的插入呢?

 【说明】

  1. MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。
  2. 可以通过UNSIGNED来说明某个字段是无符号的

  • 无符号案例
①创建一个TINYINT列:

 ②插入数据(注意范围):

 ③查询数据:

 

 

【注意】
  • 尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。
【小结】
总之,TINYINT类型是MySQL中的一种整数类型,适用于存储布尔值或较小的整数。
它占用较少的存储空间,查询和计算效率高。可以根据需要选择是否使用有符号或无符号的TINYINT类型。

2、bit类型

MySQL中的BIT类型是一种用于存储位字段(bit fields)的数据类型。

下面是关于BIT类型的详解

  • 基本语法:
bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。

存储空间

  • BIT数据类型占用的存储空间取决于定义时指定的位数,最大位数为64

位数限制

  • BIT类型可以定义的位数可以是1到64之间的任意整数

存储方式

  • BIT类型的数据以二进制形式进行存储

使用场景

  • BIT类型通常用于表示布尔值或位掩码。
  • 可以用于存储二进制标志,每个位表示一种状态,如开/关、启用/禁用等。

查询和计算操作

  • 查询和计算BIT类型的数据需要使用相关的位运算操作符,如按位与(&)、按位或(|)、按位异或(^)等

默认值

  • BIT类型的默认值‘1’,也可以使用b'xxx'或0bxxx的形式指定具体的二进制值

💨 示例:

①创建一个 bit 列:

 

 ②插入数据(注意范围):

  ③查询数据:

 【说明】

  1. 此时我们会发现很怪异的现象,a的数据10没有出现;
  2. 其实 bit 字段在显示时,是按照ASCII码对应的值显示,因此当我们插入 10之后没有任何显示

 

【注意】

如果我们有这样的值,只存放 0 1 ,这时可以定义 bit(1) 。这样可以节省空间

 

【小结】

总之,BIT类型是用于存储位字段的数据类型,可以指定位数范围,并以二进制形式进行存储。

它适用于存储布尔值或位掩码,并可以使用位运算操作符进行查询和计算操作。

需要注意的是:在操作BIT类型数据时,需要使用适当的位运算操作符来处理位级别的操作。


3、小数类型

float类型

MySQL中的FLOAT类型是一种浮点数类型,用于存储单精度浮点数。

下面是有关FLOAT类型的详解

  • 语法:
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节

存储范围和精度

  • FLOAT类型占用4字节的存储空间。
  • 可以存储的范围为 [-3.402823466E+38,-1.175494351E-38]、[0]、[1.175494351E-38,3.402823466E+38] 之间的浮点数。
  • 最多可存储7位小数。

精度和舍入错误

  • FLOAT类型是近似值类型,并且以二进制形式存储。
  • 存在舍入错误的可能性,这意味着在进行计算时可能会出现轻微的精度损失。
  • 比较FLOAT类型的值时,可能需要使用误差范围进行判断,而不是简单的等于比较。

默认值

  • FLOAT类型的默认值为 ‘0’

查询和操作

  • FLOAT类型可以使用算术运算符(如加法、减法、乘法、除法等)进行计算。
  • 可以与其他数值类型进行混合运算,MySQL会自动进行类型转换。

存储方式

  • FLOAT类型的值以二进制格式存储,并使用IEEE 754标准表示。
  • 在使用时,MySQL会根据需要将二进制值转换为可读的浮点数形式。

💨 示例1:

  • 小数float(4,2)表示的范围是-99.99 ~ 99.99MySQL在保存值时会进行四舍五入。

 

💨 示例2:

  • 如果定义的是float(4,2) unsigned 这时,因为把它指定为无符号的数,范围是 0 ~ 99.99

 

【小结】

1、总之,FLOAT类型是MySQL中的一种浮点数类型,适用于存储具有小数部分的数值。

2、它占用较少的存储空间,并提供了一定的范围和精度。

3、然而,在进行浮点数计算时,需要注意舍入误差和精度损失可能带来的影响。如果需要更高的精度,可以考虑使用DOUBLE类型。


decimal

MySQL中的DECIMAL类型是一种精确数值类型,用于存储固定精度的小数值

下面是关于DECIMAL类型的详解

  • 语法:
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数

【说明】

  1. decimal(5,2) 表示的范围是 -999.99 ~ 999.99
  2. decimal(5,2) unsigned 表示的范围 0 ~ 999.99
  3. decimalfloat很像,但是有区别: floatdecimal表示的精度不一样

存储空间

  • DECIMAL类型的存储空间取决于定义时指定的精度和小数位数

精度和小数位数

  • DECIMAL类型需要指定精度和小数位数,例如DECIMAL(10, 2),其中10表示总位数,2表示小数位数
  • 精度范围为1到65,默认精度为10,默认小数位数为0

范围

  • DECIMAL类型可以存储从-10^(精度-小数位数)+1到10^(精度-小数位数)-1的数值

存储方式

  • DECIMAL类型使用定点表示法进行存储,以确保精确性

精确计算

  • DECIMAL类型的计算是精确的,不会有舍入误差

使用场景

  • DECIMAL类型适用于需要对小数进行精确计算的场景,如货币金额、精确统计数据等。
  • 由于DECIMAL类型的存储和计算是精确的,它比FLOAT和DOUBLE类型更适合处理需要高精度的小数值。

💨 示例:

【说明】

  1. float表示的精度大约是7位;
  2. decimal整数最大位数m65。支持小数最大位数d30。如果d被省略,默认为0.如果m被省略, 默认是10

💨 建议:如果希望小数的精度高,推荐使用decimal

【小结】

1、总之,DECIMAL类型是MySQL中的一种精确数值类型,用于存储固定精度的小数值。

2、它提供了精确的计算和存储,并适用于需要高精度和准确性的场景。

3、在定义DECIMAL列时,需要指定精度和小数位数,以满足具体的业务需求。


4、字符串类型

char

MySQL中的CHAR类型是一种固定长度的字符串类型,用于存储定长的字符数据。

下面是关于CHAR类型的详解

  • 语法:
char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255

存储空间

  • CHAR类型占用固定长度的存储空间,占用的字节数取决于定义时指定的长度

长度限制

  • CHAR类型需要在定义时指定长度,长度范围为1到255个字符,默认长度为1

填充空格

  • 如果存储的字符串长度小于定义的长度,将使用空格填充剩余的位置

查询效率

  • 由于CHAR类型是固定长度的,查询效率比可变长度的字符串类型(如VARCHAR)更高。因为在检索和比较时,不需要计算实际存储的字符串长度

存储方式

  • CHAR类型的字符串以定长的方式进行存储,不受实际存储内容的影响

使用场景

  • 适用于存储长度固定的字符串,如国家代码、性别、状态等。
  • CHAR类型通常用于存储较短的字符串,而不适用于存储可变长度的大文本。

💨 示例:

 

【说明】
  • char(2) 表示可以存放两个字符,可以是字母或汉字,但是不能超过2个, 最多只能是255

 

【小结】

1、CHAR类型是MySQL中的一种固定长度字符串类型,适用于存储定长的字符数据。

2、它占用固定的存储空间,效率较高,并且适合存储长度不变的字符串。

3、在定义CHAR列时,需要指定长度以满足具体的业务需求。


varchar

MySQL中的VARCHAR类型是一种可变长度的字符串类型,用于存储可变长度的字符数据。

下面是关于VARCHAR类型的详解

  • 语法:
varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节

存储空间

  • VARCHAR类型占用实际存储的字节数,根据存储的字符串长度而变化

长度限制

  • VARCHAR类型需要在定义时指定最大长度,长度范围为1到65535个字符,默认长度为1

存储效率

  • 由于VARCHAR类型是可变长度的,存储的实际字节数取决于存储的内容长度,对于较短的字符串,占用的存储空间较小

查询效率

  1. 由于VARCHAR类型是可变长度的,查询效率相对于CHAR类型可能稍低;
  2. 因为在检索和比较时,需要计算实际存储的字符串长度。

存储方式

  • VARCHAR类型的字符串以变长方式进行存储,只占用实际存储内容所需的空间

使用场景

  1. 适用于存储长度可变的字符串,如用户名、电子邮件地址、文章内容等。
  2. VARCHAR类型通常用于存储较长的字符串,尤其是长度不确定的情况。

💨 示例:

 

【说明】
  1. 关于varchar(len),len到底是多大,这个len值,和表的编码密切相关:
  2. varchar长度可以指定为 [0,65535] 之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是 65532
  3. 当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占 3个字节];
  4. 如果编码是gbkvarchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符 占用2字节)

 

【小结】

1、总之,VARCHAR类型是MySQL中的一种可变长度字符串类型,适用于存储可变长度的字符数据

2、它根据实际存储内容的长度来占用存储空间,效率较高,并适用于存储长度不确定的字符串。

 


charvarchar比较

我给大家整理了一张表格帮助大家理解记忆:

 

如何选择定长或变长字符串?
  • 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5
  • 如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去。
  • 定长的磁盘空间比较浪费,但是效率高。
  • 变长的磁盘空间比较节省,但是效率低。
  • 定长的意义是,直接开辟好对应的空间
  • 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。

日期和时间类型

MySQL中提供了多种日期和时间类型,用于存储日期、时间和日期时间数据

下面是关于MySQL日期和时间类型的详解

  1. DATE类型:用于存储日期值(年、月、日),格式为'YYYY-MM-DD'。范围从'1000-01-01'到'9999-12-31'。

  2. TIME类型:用于存储时间值(时、分、秒),格式为'HH:MM:SS'。范围从'-838:59:59'到'838:59:59'。

  3. DATETIME类型:用于存储日期和时间值,格式为'YYYY-MM-DD HH:MM:SS'。范围从'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

  4. TIMESTAMP类型:与DATETIME类型类似,但范围限制为'1970-01-01 00:00:01'到'2038-01-19 03:14:07'。通常用于记录某条数据的创建或修改时间。

  5. YEAR类型:存储年份值,格式为'YYYY'。范围从1901到2155。

  6. INTERVAL类型:用于表示时间间隔或时间差,可以与日期或时间类型相加或相减。

💨 示例:

 

【小结】

1、MySQL提供了多种日期和时间类型,可根据具体需求选择合适的类型来存储日期、时间和日期时间数据。


enumset

MySQL中的ENUM和SET类型是用于存储具有固定取值的数据的列类型

下面是关于ENUM和SET类型的详解

  • 语法:
enum:枚举,“单选”类型;enum('选项1','选项2','选项3',...);

【说明】

  1. 该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;
  2. 而且出于效率考 虑,这些值实际存储的是“数字,因为这些选项的每个选项值依次对应如下数字:1,2,3,....最多65535 个;
  3. 当我们添加枚举值时,也可以添加对应的数字编号。
  • 语法:
set:集合,“多选”类型;set('选项值1','选项值2','选项值3', ...);

【说明】

  1. 该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;
  2. 而且出于效率 考虑,这些值实际存储的是“数字,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32.... 最多64个。

说明:不建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。

💨 示例:

有一个调查表 votes ,需要调查人的喜好, 比如(登山,游泳,篮球,武术)中去选择 ( 可以多选 ) , (男,女)[ 单选 ]

  •  插入数据:

  •  有如下数据,想查找所有喜欢登山的人:

  •  我们可以发现不能查询出所有,爱好为登山的人
集合查询使用 find_ in_ set 函数:

find_in_set(sub,str_list)
  1. 如果 sub str_list 中,则返回下标;如果不在,返回0
  2. str_list 用逗号分隔的字符串。
mysql> select find_in_set('a', 'a,b,c');
+---------------------------+
| find_in_set('a', 'a,b,c') |
+---------------------------+
| 1 |
+---------------------------+
mysql> select find_in_set('d', 'a,b,c');
+---------------------------+
| find_in_set('d', 'a,b,c') |
+---------------------------+
| 0 |
+---------------------------+

查询爱好登山的人:

 


总结

以上便是mysql数据类型的全部知识。感谢大家的支持与观看!!!

 

相关文章:

【mysql】—— 数据类型详解

序言: 本期我将大家认识关于 mysql 数据库中的基本数据类型的学习。通过本篇文章,我相信大家对mysql 数据类型的理解都会更加深刻。 目录 (一)数据类型分类 (二)数值类型 1、tinyint类型 2、bit类型 …...

kafka常用命令

查看主题 ./kafka-topics.sh --list --bootstrap-server 10.1.1.2:9092 创建主题 ./kafka-topics.sh --bootstrap-server 10.1.1.2:9092 --create --topic test_topic --partitions 1 查看消费者列表--list ./kafka-consumer-groups.sh --bootstrap-server 10.1.1.2:9092 -…...

数字图像处理(番外)图像增强

图像增强 图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。 图像对比度 图像对比度计算方式如下: C ∑ δ δ ( i , j …...

flutter:轮播

前言 介绍几个比较有不错的轮播库 swipe_deck 与轮播沾边,但是更多的是一种卡片式的交互式界面设计。它的主要概念是用户可以通过左右滑动手势浏览不同的卡片,每张卡片上都有不同的信息或功能。 Swipe deck通常用于展示图片、产品信息、新闻文章、社…...

高忆管理:股票投资策略是什么?有哪些?

在进行股票买卖过程中,出资者需求有自己的方案和出资战略,并且主张严格遵从出资战略买卖,不要跟风操作。那么股票出资战略是什么?有哪些?下面就由高忆管理为我们剖析: 股票出资战略简略来说便是能够协助出资…...

为公网SSH远程Ubuntu配置固定的公网TCP端口地址主图

文章目录 为公网SSH远程Ubuntu配置固定的公网TCP端口地址 为公网SSH远程Ubuntu配置固定的公网TCP端口地址 在上篇文章中,我们通过cpolar建立的临时TCP数据隧道,成功连接了位于其他局域网下的Ubuntu系统,实现了不同操作系统、不同网络下的系统…...

【前端知识】React 基础巩固(四十一)——手动路由跳转、参数传递及路由配置

React 基础巩固(四十一)——手动路由跳转、参数传递及路由配置 一、实现手动跳转路由 利用 useNavigate 封装一个 withRouter(hoc/with_router.js) import { useNavigate } from "react-router-dom"; // 封装一个高阶组件 function withRou…...

Qt几种字符类型的相互转换

Qt几种字符类型的相互转换 将const QString转换为const char*将const char*转换为const QStringQstring转换为string把string转换为QstringQt中弹出一个窗口 将const QString转换为const char* #include <QString> #include <iostream>int main() {const QString …...

软件测试员的非技术必备技能

成为软件测试人员所需的技能 非技术技能 以下技能对于成为优秀的软件测试人员至关重要。 将您的技能组合与以下清单进行比较&#xff0c;以确定软件测试是否适合您 - 分析技能&#xff1a;优秀的软件测试人员应具备敏锐的分析能力。 分析技能将有助于将复杂的软件系统分解为…...

渗透测试:Linux提权精讲(二)之sudo方法第二期

目录 写在开头 sudo expect sudo fail2ban sudo find sudo flock sudo ftp sudo gcc sudo gdb sudo git sudo gzip/gunzip sudo iftop sudo hping3 sudo java 总结与思考 写在开头 本文在上一篇博客的基础上继续讲解渗透测试的sudo提权方法。相关内容的介绍与背…...

ansible安装lnmp(集中式)

文章目录 一、安装nginx二、安装mysql三、安装php测试&#xff1a; 一、安装nginx - name: the nginx playhosts: webserversremote_user: roottasks:- name: stop firewalld #关闭防火墙service: namefirewalld statestopped enabledno- name: selinux stopc…...

Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目

Tomcat 一、Tomcat简介二、Tomcat基本使用三、Maven创建Web项目3.1 Web项目结构3.2开发完成部署的Web项目3.3创建Maven Web项目3.3.1方式一3.3.2方式二&#xff08;个人推荐&#xff09; 总结 一、Tomcat简介 Web服务器&#xff1a; Web服务器是一个应用程序&#xff08;软件&…...

微信小程序测试要点

一、什么是小程序&#xff1f; 可以将小程序理解为轻便的APP&#xff0c;不用安装就可以使用的应用。用户通过扫一扫或者搜索的方式&#xff0c;就可以打开应用。 小程序最主要的特点是内嵌于微信之中&#xff0c;而使用小程序的目的是为了能够方便用户不在受下载多个APP的烦…...

TCP网络通信编程之netstat

【netstat指令】 【说明】 &#xff08;1&#xff09;Listening 表示某个端口在监听 &#xff08;2&#xff09;如果有一个外部程序&#xff08;客户端&#xff09;连接到该端口&#xff0c;就会显示一条连接信息 &#xff08;3&#xff09;指令netstat -anb 可以参看是那个…...

Stable Diffusion:网页版 体验 / AI 绘图

一、官网地址 Stable Diffusion Online 二、Stable Diffusion AI 能做什么 Stable Diffusion AI绘图是一种基于Stable Diffusion模型的生成式AI技术&#xff0c;能够生成各种类型的图像&#xff0c;包括数字艺术、照片增强和图像修复等。以下是一些可能的应用&#xff1a; …...

一文了解JavaScript 与 TypeScript的区别

TypeScript 和 JavaScript 是两种互补的技术&#xff0c;共同推动前端和后端开发。在本文中&#xff0c;我们将带您快速了解JavaScript 与 TypeScript的区别。 一、TypeScript 和 JavaScript 之间的区别 JavaScript 和 TypeScript 看起来非常相似&#xff0c;但有一个重要的区…...

从更广阔的角度看待产业互联网,它展现的是一次重构的过程

如果产业互联网仅仅只是在传统的供求关系之下&#xff0c;如果产业互联网仅仅只是在传统的平衡之下&#xff0c;缺少了一次对于供求关系的重新建构&#xff0c;那么&#xff0c;所谓的产业互联网&#xff0c;依然是无法跳出以往的发展困境&#xff0c;依然是无法摆脱以往的发展…...

【PHP】简记问题:使用strtotime(‘-1 month‘, time)获取上个月第一天时间戳出错

发生场景 在7月31号是查看统计上个月订单购买总金额&#xff0c;查询结果为0 $preMonthStart strtotime(date(Ym01, strtotime("-1 month"))); $curMonthStart strtotime(date(Ym01)); # 统计上月份实际订单金额 $sql "SELECT count(money) FROM orders WH…...

舌体分割的初步展示应用——依托Streamlit搭建demo

1 前言 去年在社区发布了有关中医舌象诊断的博文&#xff0c;其中舌象识别板块受到了极高的关注和关注。&#x1f60a;最近&#xff0c;我接触到了Python的Streamlit库&#xff0c;它可以帮助数据相关从业人员轻松搭建数据看板。本文将介绍如何使用Streamlit构建舌体分割的演示…...

从Vue层面 - 解析发布订阅模式和观察者模式区别

目录 前言一、发布订阅模式什么是发布订阅模式&#xff1f;应用场景 二、观察者模式1&#xff09;什么是观察者模式&#xff1f;2&#xff09;应用场景3&#xff09;vue中的观察者模式观察者&#xff08;订阅者&#xff09; - Watcher目标者&#xff08;发布者&#xff09; - D…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

对象回调初步研究

_OBJECT_TYPE结构分析 在介绍什么是对象回调前&#xff0c;首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例&#xff0c;用_OBJECT_TYPE这个结构来解析它&#xff0c;0x80处就是今天要介绍的回调链表&#xff0c;但是先不着急&#xff0c;先把目光…...

Linux基础开发工具——vim工具

文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…...