MySQL知识点(上)

MySQL知识点

一:MySQL概述

MySQL是一款开源的数据库软件,是一种关系型数据库管理系统(ROBMS),也叫做表数据库管理系统

如果需要快速安全地处理大量的数据,则必须使用数据库管理系统;任何基于数据库编程的程序,其本质都是对数据的处理操作;通过使用数据库,数据便可以被动态地展示;只有与数据库相结合,才能充分地发挥动态网页编程语言的魅力

(1)数据库(DB)

存放数据的仓库

(2)数据库管理系统(DBMS)

是一个操作和管理数据库的系统软件,主要负责存储和管理网站所需的内容数据,用于建立;使用和维护数据库

(3)数据库系统(DBS)

由数据库;数据库管理系统;应用系统和用户共同组成

二:MySQL服务器的启动和退出

每一行命令结束后,记得按回车键(Enter)

1.MySQL服务器的启动与关闭

(1)启动MySQL服务器

首先,以管理员的身份运行命令提示符,输入命令来启动mysql服务器:

net start mysql版本号

net start mysql版本号 是Windows系统命令,需要管理员权限运行,用于启动在Windows服务中注册的MySQL服务进程,使MySQL服务进程(mysqld.exe)开始运行

在MySQL服务未运行时,使用该命令启动服务之后才能通过客户端连接服务器(仅启动服务,不涉及用户登录和数据库操作)

(2)关闭MySQL服务器

以下两种命令都可以关闭MySQL数据库服务器

net stop mysql版本号

net stop mysql版本号 是Windows系统命令,非MySQL自身命令,需要管理员权限运行,用于停止在Windows服务中注册的名为 “mysql版本号” 的MySQL服务进程(命令中的服务名需与实际安装名称一致)

SHUTDOWN

SHUTDOWN 是通用方法,需在命令行中执行,而不是MySQL客户端内,要管理员权限

2.MySQL服务器的连接与退出

(1)连接MySQL服务器

首先,打开命令行窗口,输入命令:

用于连接数据库服务器,进入MySQL:

mysql -h 服务器名称/IP地址 -u 用户名 -p用户密码
  • -h:指定的是所连接的数据库服务器地址,如果连接的是本机,该参数可以省略
  • -u:指定连接数据库服务器使用的用户名(如:root表示管理员身份)
  • -p:指定连接数据库服务器使用的密码,-p和其后的参数值之间不允许有空格;也可以省略-p后面的参数值,按回车键(Enter)后以密文的形式输入密码

所以可以简写为:

mysql -u 用户名 -p密码

mysql -u 用户名 -p密码 是MySQL客户端命令,用于指定用户(如:root)身份登录到已经运行的MySQL服务器(仅用于客户端连接,而非启动MySQL服务,需要MySQL服务已经处于运行状态时使用)

在MySQL服务启动后,通过此命令连接到服务器,进入MySQL命令行界面进行数据库操作

(2)退出MySQL服务器

以下两种命令都可以退出MySQL数据库服务器

exit
quit

exitquit 是MySQL客户端命令,用于退出MySQL命令行交互界面(MySQL控制台)

exitquit 的功能完全相同,只是别名关系,均用于退出MySQL客户端,不会影响MySQL服务器;执行后仅关闭当前客户端会话,服务器进程(如:mysqld.exe)仍在运行

3.对于启动与连接;关闭与退出的区分

(1)启动与连接
net start mysql版本号mysql -u 用户名 -p密码
作用:启动MySQL Windows服务指定用户身份登录MySQL服务器
使用场景:MySQL服务未运行时启动服务MySQL服务已运行时连接服务器
用户登录:不涉及用户登录涉及用户登录

net start mysql版本号:仅启动服务,无法直接进行数据库操作,此命令需要管理员权限

mysql -u 用户名 -p密码:仅用于登录,无法启动服务,需要具有相应权限的MySQL用户

(2)关闭与退出
net stop mysql版本号SHUTDOWNexitquit
作用:关闭MySQL Windows服务关闭MySQL服务用于退出客户端会话
使用位置:在Windows命令行中使用在MySQL命令行中使用在MySQL客户端内使用
是否影响服务器:影响服务器影响服务器不影响服务器

4.一些名词解释及问题

(1)MySQL命令行

通过操作系统的终端(命令提示符)直接访问MySQL服务器的一种方式

MySQL命令行是基于命令行界面的工具,用户通过输入特定的MySQL命令来与MySQL服务器进行交互

启动方式:

打开终端(命令提示符)输入 mysql -u 用户名 -p密码 ,回车(Enter)后即可进入MySQL命令行

(2)MySQL客户端

MySQL客户端包括所以可以与MySQL服务器进行通信的应用程序,既包含命令行工具(前面提到的MySQL命令行),也包含图形化界面工具

MySQL命令行是MySQL客户端的一种具体实现形式

(3)Windows命令行

Windows命令行是Windows操作系统提供的一个基于命令行的用户界面,允许用户通过输入命令来执行各种系统操作和程序,并不直接与MySQL服务器交互

虽然Windows命令行并不能直接执行MySQL的SQL命令,但可以通过它来启动MySQL服务,使其连接到MySQL命令行等

启动方式:

按下 “Win+R” 键打开 “运行对话框” ,输入 “cmd” 并回车(Enter),即可打开Windows命令提示符窗口

(4)为什么需要先启动服务(MySQL服务的作用)
  1. 后台进程:MySQL服务(mysqld.exe或mysqld)是一个后台运行的守护进程,该进程负责监听客户端的连接请求(默认端口号3306);管理数据库文件(如:数据表;索引等);执行SQL操作等
  2. 服务化设计:
  • 自动管理: 开机自动启动,避免手动操作
  • 隔离性: 服务在后台运行,用户无需关心进程细节
  • 资源控制: 服务管理器可限制资源占用

如果服务未运行,MySQL客户端将无法连接到MySQL服务器,数据库文件也将无法被访问,客户端登录的前提条件是MySQL服务已启动

何时需要手动启动服务:

  • 首次安装后: MySQL服务默认为未启动,所以需要手动启动
  • 服务崩溃或者是异常停止: 当系统重启后服务未自动恢复时
  • 开发调试时: 临时重启服务后
(5)为什么mysql -u 用户名 -p密码 可以直接登录而无需手动启动服务
  1. 如果MySQL服务被设置为自动启动,则在系统启动时会自动执行,无需手动干预
  2. 一旦通过 net start mysql版本号 启动服务,则服务会持续运行,直到显示停止(如通过 net stop mysql版本号 来关闭服务或系统重启)在后续客户端登录时,服务已经处于运行状态则无需再次启动

mysql -u 用户名 -p密码是客户端命令,执行流程如下:

  1. 检查服务状态: 客户端尝试连接MySQL的默认端口号(3306)
  2. 若服务未运行: 连接失败
  3. 若服务已运行: 客户端会发送认证请求(用户名和密码)服务端验证权限后建立会话

注意:

用户很可能因为服务自动启动从而忽略这一过程

操作作用对象执行环境服务状态作用场景
net start mysql版本号MySQL服务进程Windows命令行启动服务首次安装或服务崩溃后恢复
mysql -u 用户名 -p密码MySQL客户端会话MySQL命令行客户端依赖服务已运行日常数据库操作或开发调试
(6)为什么MySQL要设计为”服务化“

MySQL作为服务运行,提供了稳定性;可管理性;安全性和并发性,是数据库系统的标准架构,理解这一机制有助于更高效地排查连接问题

  1. 稳定性: 服务进程与用户会话分离,避免了因用户退出导致数据库崩溃
  2. 可管理性: 通过服务管理器(如systemd)可监控进程状态,限制资源占用
  3. 安全性: 服务可配置为以非特权用户运行(如mysql用户),降低系统风险
  4. 并发性: 服务可同时处理多个客户端连接,支持高并发访问
(7)设置MySQL服务为自动启动

按下 “Win+R” 键,打开 “运行” 对话框,在文本框中输入 services.msc ,按下回车,此时打开服务管理器,找到MySQL服务,右键点击选择 “属性” ,最后将启动类型改为自动

(8)如何确认服务是否运行
sc query mysql版本号
(9)若客户端登录失败,但服务已启动
netstat -ano | findstr 3306

使用此命令可以帮助检查以下问题

  1. 端口监听状态

    正常情况会显示LISTENING状态,表明 MySQL 正在 3306 端口监听连接

    若未显示任何结果,说明服务未正确绑定 3306 端口(可能配置了其他端口或服务启动异常)

  2. 监听地址

    显示0.0.0.0:3306表示允许所有 IP 连接

    显示127.0.0.1:3306表示仅允许本地连接(远程客户端无法访问)

  3. 防火墙排查

    若端口处于监听状态但仍无法连接,需检查防火墙是否放行 3306 端口

(10)用net stop mysql版本号关闭服务的原因及作用
  1. net stop mysql版本号是Windows系统命令,用于停止以服务形式运行运行的MySQL后台进程(mysqid.exe)
  2. 关闭服务会释放系统资源(内存;端口号等)并确保数据库处于安全状态,避免数据损坏或丢失

使用场景:

  • 系统维护: 在进行系统升级,配置修改或硬件维护时,需先停止MySQL服务
  • 故障排查: 当MySQL服务出现异常时,可通过关闭服务重启来解决问题
  • 资源释放: 长时间运行的MySQL服务可能占用较多的系统资源,关闭后可释放资源供其他程序使用
(11)exit命令的作用及与关闭服务的区别
  • exit是MySQL客户端命令,用于退出当前与MySQL服务器的交互会话,以释放客户端占用的资源
  • 执行exit后,用户会返回操作系统命令行界面,但MySQL服务进程仍会运行,其他客户端仍可连接

exit与直接关闭服务的区别:

  1. 操作对象不同:

net stop mysql版本号作用于MySQL服务进程

exit作用于MySQL客户端会话

  1. 影响范围不同:

net stop mysql版本号用于停止整个MySQL服务,所有客户端的连接都会中断

exit仅用于终止当前客户端会话,不影响其他客户端和服务本身

  1. 使用场景不同:

net stop mysql版本号在需要完全停止MySQL服务时使用

exit在完成数据库操作后退出客户端时使用

5.sc命令于net命令的区别

(1)启动服务

sc start mysql版本号

(2)停止服务

sc stop mysql版本号

(3)重启服务

sc restart mysql版本号

(4)获取服务状态

sc query mysql版本号

sc命令和net命令均用于管理服务,二者具体区别如下:

  1. 命令来源与底层机制:
  • sc命令是Windows系统中用于与服务控制管理器(scm)交互的命令行工具,属于系统原生工具,它直接调用服务控制端口,底层操作更贴近系统服务管理机制,适合需要精确控制服务参数的场景
  • net命令是Windows系统中用于管理网络资源及服务的传统工具,通过封装系统API来实现服务启动,兼容性更好,适合常规服务管理操作
  1. 功能差异:
  • sc命令支持传递附加参数(如:依赖服务;启动超时设置等),它提供了更详细的服务状态反馈(如:错误代码;进程ID等)便于诊断问题
  • net命令的功能相对简单,不提供参数化配置能力,输出信息更简洁,适合快速操作
  1. 使用场景推荐:
  • sc命令适合开发调试或故障排查时使用
  • net命令适合日常快速启动服务及需要兼容旧版Windows系统时使用
  1. 核心区别
  • sc命令更底层;功能更丰富,适合高级管理
  • net命令更简单直接,适合日常操作

三:操作MySQL数据库

  • 每个数据库都有唯一的数据库文件名作为与其他数据库区别的标识
  • MySQL数据库分为系统数据库(DBMS)和自建数据库两种类型
  • 安装MySQL后,系统自动创建的数据库称为系统数据库

系统数据库有:

mysqlinformation_schemaperformance_schemasys

其中,MySQL数据库服务器把有关数据库的信息存储在mysqlinformation_schema这两个数据库中,如果删除了这两个数据库,MySQL数据库服务器将无法正常工作

关系数据库中的名词术语:

  • 列: 也叫字段;属性;数据项
  • 行: 也叫元组;记录
  • 表: 也叫关系
  • 表内容: 也叫值
  • 表标题: 也叫格式
  • 候选码: 唯一识别元组
  • 主键: 当有多个候选码时选一个作为主键

其中,表是最基本的数据对象,用于存放数据库的数据,一个数据库中包含多个数据表;候选码具有唯一性且可以有多个;主键只能有1个(1个指的是一列或由多列组成的复合列)

1.对MySQL数据库的操作

(1)创建数据库
CREATE DATABASE 数据库名;

SQL语句在Windows和MacOS的环境中不区分字符的大小写,但在Linux环境中严格区分大小写

数据库的命名规则:

  • 不能与其他数据库重名
  • 名称可以使用字母;阿拉伯数字;下划线(_)或$中的任意字符开头,但要避免使用单独的数字
  • 禁止使用MySQL关键字作为数据库及数据表名
  • 建议使用小写字母来定义数据库及数据表名
  • 名称最长可为64个字符(包括表;列和索引的命名),而别名最多可达256个字符

注意:

  1. 所有的SQL语句命令的最后都以英文分号 “;” 结尾
  2. 数据库名;表名;列名最好不要使用中文命名
(2)查看当前数据库
SHOW DATABASES;

用于显示当前本地MySQL数据库服务器下的所有已经存在的数据库名

(3)选择数据库
USE 数据库名;

用于指定一个数据库,使其成为当前使用的数据库

(4)删除数据库
DROP DATABASE 数据库名;

用于删除指定的数据库,一旦执行,数据库中的所有结构和数据都会被删除,没有恢复的可能,除非有备份

(5)数据表概述
  • 创建数据库以后,需要在其中创建数据表来存储数据,一个数据库中可以包含一张或多张表,表是数据的集合,是用来存储数据和操作数据的
  • 数据在数据表中是按照行和列的格式来排列的

四:MySQL数据类型

数据类型可以更加方便管理和使用数据,它决定了存储数据的存储格式和有效范围

在MySQL数据库中,每一条数据都有其数据类型

MySQL的数据类型主要分为三大类:

1.数值类型(数值类型的字节数是固定的)

(1)整数数据类型
数据类型取值范围描述所占字节数
TINYINT有符号值:-128~127; 无符号值:0~255最小的整数1字节
SMALLINT有符号值:-32768~32767; 无符号值:0~65535微小型整数2字节
MEDIUMINT有符号值:-8388608~8388607; 无符号值:0~16777215小型整数3字节
INT(INTEGER)有符号值:-2147483648~2147483647; 无符号值:0~4294967295中型整数4字节
BIGINT有符号值:-9223372036854775808~9223372036854775807; 无符号值:0~18446744073709551615大型整数8字节

注意:

  1. 在整数类型后面加上UNSIGNED属性,表示声明的是无符号值,其取值从0开始
  2. 在整数类型后面加上ZEROFILL属性,表示在数值之前自动用0补充不足的位数;当使用ZEROFILL属性修饰时,自动应用UNSIGNED属性
  3. 在声明整数类型时,可以为它指定一个显示宽度(1~255),如果没有给它指定显示宽度,MySQL会给它指定一个默认值显示宽度,仅用于显示,并不会限制取值范围(如:INT(5)
  4. 数值类型的字节数是固定的,它的取值范围由其占用的字节数和编码方式(有符号/无符号)共同决定,字节数越多,数值取值范围越大
(2)浮点数数据类型
数据类型取值范围描述精度所占字节数
FLOAT最小正规范数: 即 1.175494 × 10⁻³⁸ 最大正规范数: 即 3.402823 × 10³⁸ 最小正非规范数: 用于接近零的值 负数范围: 对称取反单精度浮点数约 6~7 位有效数字4字节
DOUBLE最小正规范数: 即 2.225074 × 10⁻³⁰⁸ 最大正规范数: 即 1.797693 × 10³⁰⁸ 最小正非规范数: 用于接近零的值 负数范围: 对称取反双精度浮点数约 15~17 位有效数字8字节
DEC(DECIMAL)DECIMAL(M, N) 的取值范围由精度(即总位数M 和小数位数(即小数点后的位数N 决定自定义精确数型精确到定义的小数位因精度位数而异

注意:

  1. 未指定精度时,默认 DECIMAL(10, 0)
  2. DECIMAL 的存储空间由精度 M 决定,每 9 位数字需要 4 字节,以此类推(每增加 9 位,增加 4 字节)
  3. 在声明浮点数类型时,可以为它指定一个显示宽度指示器和一个小数点指示器(如:FLOAT(5, 2) 5表示显示的值不超过5位数字;2表示小数点后有2位数字),存入的数据会自动被四舍五入
  4. 高精度会显著增加存储空间和计算开销,需根据业务需求选择: FLOAT:适合对内存敏感的场景(如大规模科学计算),但精度较低 DOUBLE:默认推荐类型,平衡了范围和精度,适合大多数工程计算 DECIMAL:需要精确小数时使用(如货币)

2.字符串类型

字符串类型可以用来存储任何一个值,MySQL中的字符串可以被单引号或双引号包裹

字符串类型分为三类:

(1)普通的文本字符串类型
数据类型取值范围描述所占字节数
CHAR(M)0~M个字符(M<=255)定长字符串,存储空间固定,适合存储长度相近的数据M x 3(在UTF-8中,1个中文字符占3个字节)
VARCHAR(M)0~M个字符(M<=65535)变长字符串,长度可变,其它和char(M)类似M x 3 + 长度标识(1/2字节)

注意:

  1. CHAR(M) 无论实际存储的字符数是否达到M,均占用 Mx字符集字节数 的空间
  2. VARCHAR(M) 仅占用实际的 字符长度+长度标识 的空间
  3. 在使用 CHAR 类型时,当实际传入的值的长度小于指定长度,会使用空格将实际长度填补至指定长度;而在使用 VARCHAR 类型时,当实际传入的值的长度小于指定长度,那么实际长度即为传入字符串的长度,不会使用空格填补
  4. 在使用 CHARVARCHAR 类型时,当实际传入的值的长度大于指定长度,字符串会被截取至指定长度
  5. CHAR(M)VARCHAR(M) 表示可以存储M个字符,注意不是M个字节
  6. 当数据分布不均时,使用 VARCHAR(M) 可大幅节省存储空间,变长类型的长度标识允许数据库动态计算实际占用空间并进行分配,可避免因固定长度导致数据溢出和存储空间的浪费
  7. 字符集对CHAR类型没有影响,因此CHAR(M)中的M最大为255;但是字符集对VARCHAR类型是有影响的,如果使用的是UTF-8字符集,每个字符大小为3字节,最大支持21845(65535/3=21845)个字符,因此VARCHAR(M)中的M最大为21845
(2)可变类型
数据类型取值范围描述说明
TINYBLOB0~255 字节(二进制数据)BLOB字段存储短二进制数据(如:小型图标、加密密钥等)
TINYTEXT0~255 字节(文本数据,字符数取决于编码)小文本串存储短文本(如:简短描述、标签等)UTF-8 编码下字符数可能少于 255
BLOB0~65,535 字节(约 64KB)常规BLOB字段存储中等二进制数据(如:小图片、音频片段等)
TEXT0~65,535 字节(约 64KB,字符数取决于编码)常规文本串存储中等长度文本(如:文章摘要、评论等)UTF-8 编码下字符数可能少于 65,535
MEDIUMBLOB0~16,777,215 字节(约 16MB)中等BLOB字段存储较大二进制数据(如:高清图片、短视频片段等)
MEDIUMTEXT0~16,777,215 字节(约 16MB,字符数取决于编码)中等文本串存储较长文本(如:长文章、日志等)UTF-8 编码下字符数可能少于 16,777,215
LONGBLOB0~4,294,967,295 字节(约 4GB)BLOB字段存储大型二进制数据(如:完整视频、大型文件等)
LONGTEXT0~4,294,967,295 字节(约 4GB,字符数取决于编码)长文本串存储超长文本(如:书籍内容、详细报告等)UTF-8 编码下字符数可能少于 4,294,967,295

注意:

1. 关于二进制和文本类型:

  • BLOB 系列TINYBLOBBLOBMEDIUMBLOBLONGBLOB)用于存储二进制数据,支持任何数据(如图片、音频、视频等),字符集编码对BLOB系列类型没有影响
  • TEXT 系列TINYTEXTTEXTMEDIUMTEXTLONGTEXT)用于存储文本数据(如文章、评论、日志等),TEXT系列类型实际字符数的取值范围受字符集编码影响

2. 性能与存储建议:

  • 小数据:优先使用 TINYBLOB/TINYTEXTBLOB/TEXT,以节省存储空间
  • 大数据:对于超过 16MB 的数据(如高清视频),考虑使用 LONGBLOB/LONGTEXT,但需要注意数据库性能影响
  • 替代方案:对于超大型文件(如 GB 级视频),建议存储文件路径而非文件本身,以避免数据库膨胀
(3)特殊类型
数据类型最大值描述说明所占字节数
Enum("value1", "value2", ...)65535从预定义的列表中选择单个值适用于单选字段(如:订单状态;性别等)1~2
Set("value1", "value2", ...)64从预定义的列表中选择0个或多个值适用于多选字段(如:用户权限;兴趣等)1~8

3.日期/时间类型

数据类型取值范围说明所占字节数
DATE1000-01-01 ~ 9999-12-31日期,格式为:YYYY-MM-DD3
TIME-838:59:59 ~ 838:59:59时间,格式为:HH:MM:SS3
DATETIME1000-01-01 00:00:00 ~ 9999-12-31 23:59:59日期和时间,格式为:YYYY-MM-DD HH:MM:SS8
TIMESTAMP'1970-01-01' 00:00:00 ~ 2037年的某个时间时间戳,格式为:YYYY-MM-DD HH:MM:SS4
YEAR1901 ~ 2155年份,格式为:YYYY1

4.关于字符、字节和字符集

  • 在不同的字符集下,字符占用的字节数不同;字符数也不同

  • 字符;字节和字符集是计算机科学和信息技术中与文本处理密切相关的核心概念

(1)字符
  • 字符是人类可识别的最小文本单元,也是与用户直接交互的文本单位(字母;数字;符号;汉字等都是字符)

  • 字符具有抽象性,是逻辑概念,不直接对应计算机的存储方式,需通过字符集映射到二进制编码

(2)字节
  • 字节(Byte)是计算机存储和传输数据的基本单位,也是计算机处理数据的物理单位,所有数据(包括字符)最终都以字节的形式存储在计算机中

  • 1字节=8位二进制数(bit)

(3)字符集
  • 字符集是字符与二进制编码(字节)之间的映射(翻译)规则,用于编码(将字符转换为字节序列)和解码(将字节序列还原为字符)

  • 字符集是连接字符与字节的桥梁,决定了字符所占用的字节数和字符的存储效率

  • 通过合理的选择字符集和优化编码方式可避免存储空间的浪费和乱码问题

  • 编码格式是字符集的具体实现;字符集是众多字符的集合

5.数据类型的选择

(1)固定长度数据用 CHAR(速度快但可能浪费空间)
  • 适用场景: 数据长度完全固定时(如身份证号、手机号、固定5位的邮编等)
  • 优点: 存储和查询速度快,因为计算机直接通过固定位置读取,无需计算长度
  • 缺点: 如果数据长度不足(如只存"M"),会用空格填充到指定长度,浪费存储空间
(2)可变长度数据用 VARCHAR(省空间但稍慢)
  • 适用场景: 数据长度不固定时(如用户名、地址、电话号码)
  • 优点: 只占用实际数据长度 + 1~2字节长度标识,不会浪费
  • 缺点: 需要额外计算长度,查询速度略慢于CHAR
(3)限定选项用 ENUM(只能选一个预设值)
  • 适用场景: 数据必须从预设的固定选项中选择时(如订单状态:待支付、已支付、已取消;用户类型等)
  • 优点: 强制数据规范(避免拼写错误或无效值);存储效率高(内部用整数索引存储)
  • 缺点: 修改选项时需要改表结构
(4)多选项组合用 SET(可选多个预设值)
  • 适用场景: 数据可以从多个预设选项中选一个或多个时(如用户兴趣:运动、音乐、阅读;商品标签)
  • 优点: 能存储多个选项的组合(如"运动,音乐")
  • 缺点: 选项数量有限(最多64个);修改选项同样需要改表结构
(5)不区分大小写搜索用 TEXT(适合长文本)
  • 适用场景: 存储长文本(如文章内容、评论)且搜索时不区分大小写(如搜"hello"能匹配"Hello")
  • 注意: TEXT 类型本身默认不区分大小写,实际行为取决于数据库的排序规则
(6)区分大小写搜索用 BLOB(或二进制类型)
  • 适用场景: 需要精确匹配大小写(如密码哈希、文件指纹)或存储二进制数据(如图片、音频)
  • 优点: 严格区分大小写,适合需要精确匹配的场景

注意:

  • 性能与空间的权衡: CHAR 快但可能浪费空间,VARCHAR 省空间但稍慢
  • ENUM/SET 的限制: 预设选项修改较麻烦(需改表结构),适合固定不变的选项
  • TEXT/BLOB 的区别: TEXT 用于文本,BLOB 用于二进制数据;搜索行为取决于数据库配置(如排序规则)

通过合理选择数据类型,既能保证数据准确性,又能提升存储效率和查询性能!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93420.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell脚本实现sha256sum校验并拷贝校验通过的文件

#!/bin/bash# 目标目录 TARGET_DIR"/appdata/jn1m/versions/old/bin"# 校验文件 CHECKSUM_FILE"checksum.txt"# 检查目标目录是否存在 if [ ! -d "$TARGET_DIR" ]; thenecho "错误&#xff1a;目标目录 $TARGET_DIR 不存在"exit 1 fi#…

中小型泵站物联网智能控制系统解决方案:构建无人值守的自动化泵站体系

一、系统核心架构与功能设计1.物联网感知层设备互联&#xff1a;网关对接压力传感器、超声波液位计、智能电表、振动传感器等&#xff0c;实时采集水泵运行状态&#xff08;流量、压力、温度、振动&#xff09;、液位、水质&#xff08;pH值、浊度&#xff09;、能耗等关键参数…

网络通信---Axios

1、什么是 Axios&#xff1f; Axios​ 是一个基于 ​Promise​ 的 ​HTTP 客户端&#xff0c;用于浏览器和 Node.js 环境&#xff0c;用来发送 ​HTTP 请求&#xff08;如 GET、POST、PUT、DELETE 等&#xff09;​。 它常用于&#xff1a; 向后台 API 发送请求获取数据提交表…

Ubuntu 软件源版本不匹配导致的依赖冲突问题及解决方法

在使用 Ubuntu 系统的过程中&#xff0c;软件包管理是日常操作的重要部分。但有时我们会遇到各种依赖冲突问题&#xff0c;其中软件源与系统版本不匹配是常见且棘手的一种。本文就来详细分享一次因软件源版本不匹配引发的依赖冲突问题&#xff0c;以及具体的解决思路和流程。一…

思考:高速场景的行星轮混动效率如何理解

行星轮混动 E-CVT&#xff08;电子无级变速器&#xff09;是一种专为混合动力汽车设计的动力分配系统&#xff0c;其核心原理是通过行星齿轮组和电机的协同工作&#xff0c;实现动力分流与无级变速。 一、核心结构与组成 E-CVT的核心部件包括 行星齿轮组 和 双电机&#xff08;…

跨域及解决方案

跨域&#xff08;Cross-Origin&#xff09;是指浏览器在执行 JavaScript 的时候&#xff0c;因为同源策略&#xff08;Same-Origin Policy&#xff09;的限制&#xff0c;阻止了一个网页去请求不同源&#xff08;域名、端口、协议有任意一个不同&#xff09;的资源。 1. 什么是…

PCA降维全解析:从原理到实战

一文读懂PCA降维&#xff1a;原理、实现与可视化全解析​本文6000字&#xff0c;涵盖PCA核心原理、数学推导、代码实战及高频面试题&#xff0c;建议收藏阅读​一、为什么需要降维&#xff1f;数据爆炸时代的生存法则当数据集的特征维度激增&#xff08;如基因数据、推荐系统用…

Kafka工作机制深度解析:Broker、Partition 与消费者组协作原理

&#x1f42f; Kafka工作机制深度解析&#xff1a;Broker、Partition 与消费者组协作原理 &#x1f3c1; 前言 Kafka 已成为互联网公司流式数据处理的事实标准&#xff0c;广泛应用于日志收集、实时计算、事件驱动架构等场景。 很多开发者会用 Kafka&#xff0c;但不了解它底…

深入解析live555:开源流媒体框架的技术原理与应用实践

引言&#xff1a;流媒体领域的"老兵"与技术基石 在实时音视频传输技术的发展历程中&#xff0c;live555作为一款诞生于1990年代末的开源项目&#xff0c;至今仍在流媒体服务器、嵌入式设备和安防监控等领域发挥着不可替代的作用。它由Live Networks公司开发并维护&a…

EN55014家用电器、电动工具和类似设备的电磁兼容

一、EN 55014标准定义与属性&#xff1f;EN 55014 是针对家用电器、电动工具及类似设备的电磁兼容&#xff08;EMC&#xff09;标准&#xff0c;主要规定了这类产品在电磁骚扰发射&#xff08;避免干扰其他设备&#xff09;和抗扰度&#xff08;抵抗其他设备干扰&#xff09;方…

python自学笔记9 Seaborn可视化

Seaborn&#xff1a;统计可视化利器 作为基于 Matplotlib 的高级绘图库&#xff0c;有一下功能&#xff1a;一元特征数据 直方图 import matplotlib.pyplot as plt import pandas as pd import seaborn as sns # import os # # 如果文件夹不存在&#xff0c;创建文件夹 # if…

kafka 消费者组的概念是什么?它是如何实现消息的点对点和发布/订阅模式?

Kafka 消费者组&#xff08;Consumer Group&#xff09;是 Kafka 架构中的核心概念&#xff0c;它是一组共同协作来消费一个或多个主题&#xff08;Topic&#xff09;数据的消费者应用的集合。 通过简单地为多个消费者实例配置相同的 group.id&#xff0c;它们就组成了一个消费…

C#文件复制异常深度剖析:解决“未能找到文件“之谜

一个看似简单的文件操作问题 在C#开发中&#xff0c;文件操作是基础中的基础&#xff0c;但有时最基础的File.Copy()方法也会抛出令人困惑的异常。最近我遇到了这样一个问题&#xff1a; File.Copy(sourceFile, targetFilePath);当targetFilePath设置为D:\25Q1\MR3.6.6.1_C1.2.…

OpenCV Python——图像查找(特征匹配 + 单应性矩阵)

1 图像查找&#xff08;单应性矩阵&#xff09;2 单应性矩阵 应用举例3 单应性矩阵 代码示例P87 111 图像查找&#xff08;单应性矩阵&#xff09; 特征匹配作为输入&#xff0c;获得单应性矩阵 点X在img1和img2中的成像分别为x,x 图中H即为单应性矩阵 2 单应性矩阵 应用…

Ubuntu 安装带证书的 etcd 集群

1.概念 etcd 是由GO语言编写的分布式的、可靠的键值存储系统&#xff0c;主要用于分布式系统中关键数据的存储和服务发现。 2.核心概念 节点&#xff08;Node&#xff09; 每个运行 etcd 的实例被称为一个节点。一个或多个节点可以组成一个集群。 集群&#xff08;Cluster&…

360 集团20周年会:战略升级ALL IN Agent,抢占智能体时代先机

发布 | 大力财经8月15日&#xff0c;360集团迎来二十周年&#xff0c;在北京奥林匹克体育中心举办的“360集团20周年荣耀庆典”上&#xff0c;创始人周鸿祎向现场数千名员工发表演讲&#xff0c;回顾360集团二十年的发展历程&#xff0c;并明确360集团下一阶段的公司战略&#…

命令模式C++

命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;它将请求封装为一个对象&#xff0c;使你可以用不同的请求对客户进行参数化&#xff0c;还能支持请求的排队、记录日志及撤销操作。这种模式将发送者和接收者解耦&#xff0c;发送者无需知道接…

Web攻防-大模型应用LLM搭建接入第三方内容喂养AI插件安全WiKI库技术赋能

知识点&#xff1a; 1、WEB攻防-LLM搭建-AI喂养&安全知识WIKI库 演示案例&#xff1a;WEB攻防-LLM搭建-AI喂养&安全知识WIKI库 使用参考 https://docs.web2gpt.ai/ https://mp.weixin.qq.com/s/qqTOW5Kg1v0uxdSpbfriaA 0、服务器环境&#xff1a;阿里云 Ubuntu22.04 …

图片拼接-动手学计算机视觉8

前言图片拼接&#xff08;image stitching&#xff09;就是将统一场景的不同拍摄出的图片拼接到一起&#xff0c;如图所示就是拼接全景图&#xff0c;是图片拼接的应用之一&#xff0c;手机拍照都有全景拍摄功能仔细观察全景图&#xff0c;寻找它们相似性&#xff0c;图8-2的全…

Web第二次作业

作业一&#xff1a;学校官网1.1学校官网代码如下&#xff1a;​<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&l…