问题标签 [mysql-variables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
925 浏览

mysql - 我是否正确计算了 MySQL 数据库的最大连接限制?

我在生产中有一个 MySQL 数据库,我正在尝试计算优化数字以将 MySQL max_connections 值设置为 - 我这样做是否正确,因为我的总和对我来说似乎很高。

据我所知,以下链接的逻辑如下,使用本文末尾添加的 URL:

我已经 ssh'd 进入相关服务器,并在 MySQL 终端中使用类似于此的查询找到了相关变量SHOW VARIABLES LIKE '%buffer%';这给了我这样的变量信息..

在此处输入图像描述

Available RAM = Global Buffers + (Thread Buffers x max_connections)

max_connections = (Available RAM – Global Buffers) / Thread Buffers

为了找出可用的 RAM,我只需free -b在终端中运行它就会返回:

手机:134902571008

为了计算相关的 Globa 缓冲区和线程缓冲区,我只是根据这些值将这些值相加

Global Buffers: key_buffer_size, innodb_buffer_pool_size, innodb_log_buffer_size, innodb_additional_mem_pool_size, net_buffer_size, query_cache_size

Thread Buffers: sort_buffer_size, myisam_sort_buffer_size, read_buffer_size, join_buffer_size, read_rnd_buffer_size, thread_stack

这给了我以下数字:

Global Buffers = (67108864 + 2147483648 + 16777216 + 0 + 0 + 33554432) = 2264924160

Thread Buffers = (1048576 + 67108864 + 1048576 + 1048576 + 8388608 + 262144) = 78905344

所以使用这个逻辑 - max_connections = (Available RAM – Global Buffers) / Thread Buffers

我认为计算是正确的 - 这给了我 1680 max_connections .. 这看起来正确吗?

max connections = (134902571008 - 2264924160) / 78905344 = 1680.97165698

0 投票
1 回答
2120 浏览

mysql - 如何设置 have_query_cache = YES?

我试图通过使用 SET VARIABLE 来设置它,但它说 have_query_cache 是只读的

0 投票
2 回答
73 浏览

mysql - 在不使用 out 参数的情况下将存储过程输出捕获到变量中

考虑以下过程:

一旦call-ed,它会输出:

但是如果在不同getFoo的存储过程中调用,我如何将其结果内容捕获到变量中,像这样?

调用时会输出以下错误: sqlMessage: "FUNCTION db.getFoo does not exist"

我知道涉及out参数的可用选项,但这些不是我的问题的可行解决方案。

义务

getFoo无法更改。它将输出SELECT语句的结果,而不涉及任何variablesnor parameters

我试过的

不幸的是,所有都会输出错误。

set @foo = exec getFoo(); set @foo = call getFoo(); select getFoo() into @foo; call getFoo() into @foo;

0 投票
1 回答
28 浏览

mysql - 这个 MySQL 查询如何返回 NULL?

nidandvid都是正整数,并且status是 0 或 1。

我完全不知道如何last_status导致NULL- 但它确实如此。

MySQL手册说:

如果 expr1 为 TRUE(expr1 <> 0 且 expr1 <> NULL),则 IF() 返回 expr2。否则,它返回 expr3。

好吧,第一次迭代@last_nid不能等于,nid因为一个是负的,另一个是正的。因此,返回 0。是的,@last_status这里是 NULL 但不能返回。然后它填充为 0 或 1@last_status的值。status

在进一步的迭代中,@last_status永远不会再被设为 NULL。

然而,绝大多数行都有 NULL 作为它的@last_status- 如果我给出@last_status一个初始值,那么这不会发生,但又一次,这意味着我的想法和我的查询是虚假的,但为什么/如何?

0 投票
1 回答
33 浏览

mysql - 使用带有变量的 If Then 运行不同的 SQL 语句

尝试做一些非常简单的事情。使用 If/Then,有没有办法根据变量的值运行单独的 Select 语句?下面代码中的函数 GetTotalActiveUnits() 返回一个整数。

0 投票
1 回答
66 浏览

mysql - 如何将查询结果的整列值存储在MYSQL中?

我有一个声明,

结果,

现在我也必须使用customer_id来从数据库中查找其他值。我想将它存储在某个变量中,然后用它来执行其他查询。但我还没有找到一种方法来做到这一点。有什么帮助吗?

0 投票
1 回答
55 浏览

mysql - MySQL / MariaDB 将 COUNT(*) 放入等式

我正在尝试获取表或列中的行数并将该值放在等式中,如下所示:

不幸的是,我收到错误 1111“无效使用组功能”。我也试过:

但这会产生相同的错误。

如何将COUNT(*)(或编程等效操作)放入方程式中?

0 投票
1 回答
32 浏览

mysql - 使用存储参数中的输入参数作为 MySQL where 子句中的变量

我有一个简单的 mysql 表:

我正在尝试按照此示例将行动态转置为列在此处输入链接描述

  1. 当我在WHERE子句中使用输入参数时,在SELECT STATEMENT旁边,它给了我找不到错误列。

  2. 我试图将变量声明为:

    设置@v1 = c_prod; SET @v2 = s_date;

在 where 子句中:

它仍然无法正常工作

如何在 WHERE 子句中定义输入参数变量?

任何帮助都会受到高度赞赏。

0 投票
1 回答
38 浏览

sql - 如何在 SQL 的 WHERE 子句中动态调用列

我试图弄清楚如何调用表中列名与声明变量的值匹配的列。在此示例中,Tbl_B 具有标记为 DPS_YYYYMM 的列,例如“DPS_201911”、“DPS_201910”、“DPS_201909”......我需要找到一种方法,从 Tbl_B 调用与@Var 匹配的给定 YYYYMM 的正确列。你能帮忙吗?

广告系列_ID DPS_201911 DPS_201910
1 345 123
0 投票
0 回答
32 浏览

mysql - 使用 mysql 变量作为 AGAINST 的参数

我正在使用 LOAD DATA INFILE 语句从 excelsheet 中获取数据,并尝试在保存到数据库之前评估结果。在使用 MATCH() AGAINST() 时,我需要能够将 excel 中的一个字段作为 AGAINST() 函数中的 mysql 变量传递,例如 AGAINST(@column4),但它不起作用。

代码如下所示: