安装mysql 选developer default和sever only的区别

DeveloperDefault 是开发者的默认安装模式。
Serveronly 用于服务器。
DeveloperMachine是一个个人工作站,运行多个程序,需要MySQL来存储资源。
ServerMachine是一个服务器,MySQL可以与其他程序一起运行。

评价一下自己。

MySQL之变量类型:全局变量、会话变量、用户变量、局部变量

哎呀,这种类型的MySQL变量,我需要讲一下,我之前经历过很多陷阱。

我记得2 01 9 年的时候,我正在做一个需要优化数据库性能的项目。
当时我对 MySQL 变量类型知之甚少。
结果我在变量作用域上犯了错误,把全局变量改了。
结果,整个服务器都被关闭了。
这是一场悲剧。
后来查资料得知,全局变量对整个MySQL服务器实例有效,可以被所有会话访问和修改。
但修改后,重启服务器就会失效。
这个坑实在是太烦人了。

我们来谈谈会话变量。
那是 2 02 0 年。
我正在做一个在线项目。
因为session变量只对当前session有效,所以我误以为修改session变量后,所有session都会随之改变。
结果,只有当前会话发生了变化,其他会话保持不变。
这让我认识到会话变量和全局变量是两个不同的东西,应该区分。

自定义变量,我在2 02 1 年的一个项目中使用过,当时我定义了一个用户变量来存储查询结果。
原来这个变量只在当前会话中有效。
会话结束后,变量就消失了。
这让我想到了用户变量范围的问题。

2 02 2 年我在一个复杂查询中使用了局部变量。
当时我在BEGIN...END块中声明了一个局部变量来存储中间计算结果。
这让我在处理复杂逻辑时避免了污染全局变量,提高了代码的可读性和可维护性。

一般来说,MySQL 变量有很多种类型,每种类型都有自己的用途。
全局变量、会话变量、用户变量和局部变量都有自己的作用域和用途。
例如,全局变量适合配置服务器行为,会话变量适合控制单个会话的行为,用户变量适合存储会话级数据,局部变量适合处理存储过程或函数中的本地数据。

这个问题应该根据当前的情况来决定。
例如,如果要调整数据库连接超时时间,则应使用全局变量;如果要记录用户的登录时间,就必须使用会话变量;如果要在存储过程中计算特定值,则必须使用局部变量。

总之,当你使用变量时,你必须清楚它的目的和用途。
别像我以前那样,我不知道你为什么会遇到麻烦。
应仔细研究此类变量。

MySQL——变量,流程控制,游标

MySQL变量、流程控制和游标是数据库编程的核心,与存储过程和复杂逻辑的实现直接相关。

变量 系统变量:
全局:对等于 @@global.max_connections 的所有连接有效。

Session:仅对当前连接有效,如@@session.transaction_isolation。

查看:显示全局变量或显示会话变量。

修复:对会话全局使用 SET GLOBAL 和 SET SESSION。
您必须更改配置文件并重新启动才能使永久修复生效。

用户定义的变量:
会话变量:@var_name,例如SET @count = 1 0,范围仅限于当前会话。

局部变量:如果在BEGIN...END中定义,则需要DECLARE语句,如DECLARE count INT DEFAULT 0。

赋值:SET var_name = value 或 SELECT col_name INTO var_name FROM 表。

过程控制 仅存储过程和函数:
条件判断:
IF:IF条件THEN动作;其他行动;当你放弃的时候;
CASE:CASE WHEN 条件 THEN 结果;其他结果;最后的例子;
循环:
LOOP:循环体;以END LOOP;、LEAVE结束。

WHILE:WHILE条件DO主体;关机期间;
重复:重复文本。
直到条件;结束循环;
跳转:
LEAVE:从当前循环或块跳转。

重复:跳过当前迭代并继续下一轮。

光标 逐行处理结果集:
语句:DECLAREcursor_nameCURSORFORSELECT...;
打开:OPEN 游标名;
获取:FETCH 游标名 INTO var1 , var2 ;
关闭:CLOSEcursor_name; 示例(存储过程重复员工姓名): SQL 分隔符 // 创建过程 process_employees() 开始 完成声明 INT DEFAULT FALSE; 声明 emp_name VARCHAR(1 00); DECLARE emp_cursor CURSOR FOR SELECT name FROM 员工; 声明未找到集合的延续处理程序 did = TRUE; 打开 emp_cursor; read_loop:循环 emp_cursor INTO 获取 emp_name。
完成后退出 read_loop。
当你放弃的时候; emp_name AS 选择“员工姓名”。
结束循环; 关闭 emp_cursor; 结束 // 分隔符;
吉他 MySQL 8 .0+ 全局变量持久化:SETPERSIST var_name = value;修改后,重启后依然存在。

直接上废话代码。