问题标签 [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.
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
在终端中运行它就会返回:
为了计算相关的 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
mysql - 如何设置 have_query_cache = YES?
我试图通过使用 SET VARIABLE 来设置它,但它说 have_query_cache 是只读的
mysql - 在不使用 out 参数的情况下将存储过程输出捕获到变量中
考虑以下过程:
一旦call
-ed,它会输出:
但是如果在不同getFoo
的存储过程中调用,我如何将其结果内容捕获到变量中,像这样?
调用时会输出以下错误: sqlMessage: "FUNCTION db.getFoo does not exist"
我知道涉及out
参数的可用选项,但这些不是我的问题的可行解决方案。
义务
getFoo
无法更改。它将输出SELECT
语句的结果,而不涉及任何variables
nor parameters
。
我试过的
不幸的是,所有都会输出错误。
set @foo = exec getFoo();
set @foo = call getFoo();
select getFoo() into @foo;
call getFoo() into @foo;
mysql - 这个 MySQL 查询如何返回 NULL?
nid
andvid
都是正整数,并且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
一个初始值,那么这不会发生,但又一次,这意味着我的想法和我的查询是虚假的,但为什么/如何?
mysql - 使用带有变量的 If Then 运行不同的 SQL 语句
尝试做一些非常简单的事情。使用 If/Then,有没有办法根据变量的值运行单独的 Select 语句?下面代码中的函数 GetTotalActiveUnits() 返回一个整数。
mysql - 如何将查询结果的整列值存储在MYSQL中?
我有一个声明,
结果,
现在我也必须使用customer_id
来从数据库中查找其他值。我想将它存储在某个变量中,然后用它来执行其他查询。但我还没有找到一种方法来做到这一点。有什么帮助吗?
mysql - MySQL / MariaDB 将 COUNT(*) 放入等式
我正在尝试获取表或列中的行数并将该值放在等式中,如下所示:
不幸的是,我收到错误 1111“无效使用组功能”。我也试过:
但这会产生相同的错误。
如何将COUNT(*)
(或编程等效操作)放入方程式中?
mysql - 使用存储参数中的输入参数作为 MySQL where 子句中的变量
我有一个简单的 mysql 表:
我正在尝试按照此示例将行动态转置为列在此处输入链接描述
当我在WHERE子句中使用输入参数时,在SELECT STATEMENT旁边,它给了我找不到错误列。
我试图将变量声明为:
设置@v1 = c_prod; SET @v2 = s_date;
在 where 子句中:
它仍然无法正常工作
如何在 WHERE 子句中定义输入参数变量?
任何帮助都会受到高度赞赏。
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 |
mysql - 使用 mysql 变量作为 AGAINST 的参数
我正在使用 LOAD DATA INFILE 语句从 excelsheet 中获取数据,并尝试在保存到数据库之前评估结果。在使用 MATCH() AGAINST() 时,我需要能够将 excel 中的一个字段作为 AGAINST() 函数中的 mysql 变量传递,例如 AGAINST(@column4),但它不起作用。
代码如下所示: