问题标签 [mariadb-10.4]

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 投票
2 回答
113 浏览

mysql - mysql中同一张表的联合

我有来自同一张表的三个查询输出。但必须将所有 3 合并到单个 mysql 查询

所有三个输出都是不同的值,彼此没有关系。我只需要把它相互平行。我尝试使用 union with the 3 quires 的实际输出,但没有达到预期的结果。

提前致谢,,,,

0 投票
4 回答
1003 浏览

mysql - MariaDB 10.4 随机性能下降

我有一个具有以下参数的服务器:

  • 操作系统:Ubuntu 18.04.4 LTS x86_64
  • 主机:X11DPi-N(T)
  • 内核:4.15.0-112-generic
  • CPU:Intel Xeon Silver 4214 (48) @ 2.201GHz
  • GPU:ASPEED Technology, Inc. ASPEED 图形系列
  • 内存:18552MiB / 96336MiB
  • SSD 三星 MZQLB960HAJR-00007 894.3G x 2

随着安装5.5.5-10.4.12-MariaDB-1:10.4.12+maria~bionic。在此屏幕截图中显示了标准数据库负载:

在此处输入图像描述

所以我每秒大约有 400-500 次选择(主要来自具有 50 万条记录的不太大的表),每秒 100-190 次更新,以及大约 50-150 次同时连接。

我的问题是:有时,没有明显的原因,服务器有 2000-3000 个打开的连接/进程。根据SHOW FULL PROCESSLIST它们是标准 SQL 请求,但具有“发送数据”状态和 400-500 秒的运行时间。当然,此时服务器死机,无法正常运行。我说“没有明显的原因”,因为此时我没有看到用户数量增加或网站上的活动增加。此外,重新启动 MariaDB 服务或完全重新启动服务器有助于摆脱这种情况,但并非总是如此:有时即使在重新启动后,我几乎会立即获得相同的 2000-3000 个冻结进程。

有没有人遇到过类似的数据库行为?我会很感激任何想法。

升级版:

  1. 我所有的 SELECT 只调用一个表(约 50 万条记录,没有JOIN和/或子查询),而且大多数都有LIMIT 1,所以没有那么多数据。

  2. 错误日志显示了很多这样的记录:2020-08-26 22:12:35 787380 [Warning] Aborted connection 787380 to db: ... (Got timeout reading communication packets)

  3. innodb_lock_wait_timeout为 50(默认)

  4. 慢查询日志没有显示异常

  5. 我的optimizer_switch设置:index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on

0 投票
3 回答
109 浏览

sql - 如何从子表中选择一个随机id?

我正在使用 10.4.13-MariaDB。我有一个父表和一个子表。

父表(任务)

在界面中看起来像

在此处输入图像描述

And I have a child table (puzzles) - 谜题表 - 谜题只能属于儿童主题

我想从每个级别获得一个随机拼图。如何编写正确的查询?

预期结果:

我的小提琴:https ://dbfiddle.uk/?rdbms=mariadb_10.4&fiddle=7bed2a19a0f98abccbe06ba9e0ae358b

0 投票
1 回答
308 浏览

database - MariaDB - 10.4.14 Windows 2019 中的静态数据加密

我不知所措,而且时间紧迫,我很快就没有选择了。在这里发布是我最后一次尝试让这个工作。我试图让我的 MariaDB 10.4.14 测试环境完全加密静态数据(包括日志、tmp 文件等)。我已按照所有说明进行操作,包括钥匙孔必须在 ANSI 中,但我仍然收到相同的错误消息:

这是我在 my.cnf 文件中的内容:

密钥文件目前未加密;一旦我弄清楚了,我最终会加密它。

我已进入数据库并确认 file_key_management 插件已列在 ALL_PLUGINS 表中,但显示为“已禁用”。当我尝试手动将其更改为“活动”时,我收到“root@localhost 没有权限”的错误(我想知道这是否是我的问题的根源,但不知道如何纠正它)。

任何想法或想法都会受到赞赏。我花了几天的时间阅读我能找到的所有东西,我必须在星期二之前完成这项工作,并且非常沮丧。

谢谢克里斯

0 投票
0 回答
28 浏览

mariadb - with 子查询中不存在表

我有一个 MariaDB 数据库。我正在运行With查询。

当我运行以下查询时,它给我一个错误,即 t1 表不存在

但是,如果我删除 block2 则查询有效。

我的问题是我没有在 block2 子查询中使用 t1 那么为什么查询会给出错误。

我认为发生错误是因为我在 block2 查询中选择了 block1 的结果两次。小提琴手

0 投票
1 回答
40 浏览

mysql - 如何在mysql中找到在30秒内重复特定列3次以上

mysql数据库

mysql查询:

有了上面的信息,ICX 应该会和我们的请求一起显示。

我想在 30 秒内显示重复基列超过 3 次谢谢

0 投票
1 回答
1041 浏览

mysql - MariaDB 10.4 对大量查询进行微调

我有一个具有以下参数的服务器:

随着安装5.5.5-10.4.12-MariaDB-1:10.4.12+maria~bionic。我有一个 PHP 编写的项目,其中有相当多的数据库查询(每秒约 400-500 次选择 + 每秒约 200-300 次更新)。问题是:在大量用户活动期间数据库相当慢,但在其他任何时候都可以。我的my.cfg文件如下:

最近我进行了更改thread_handling = pool-of-threads,并且wait_timeout = 3:它提高了性能,但总体上并没有解决问题。对于如何加快速度或消除一些“瓶颈”的任何想法,我将不胜感激。

更新:

使用 InnoDB,而不是 MyISAM

已经是这样了。

打开慢日志以查找最慢的查询。

好吧,我所有的 SELECT 只调用一个表(约 50 万条记录,没有 JOIN 和/或子查询),而且大多数都有 LIMIT 1,所以数据量不大。

让我们看看 SHOW CREATE TABLE。

好的,这是SHOW CREATE TABLE这个主表:

innodb_buffer_pool_size 可能太小——你有多少数据?MariaDB 有多少 RAM 可用?

好吧,MariaDB 在独立服务器上运行,没有任何其他软件(PHP、Apache 等)。所以我在这台服务器上有 96Gb RAM,所有这些都可以被 MariaDB 使用。

innodb_buffer_pool_instances 太大;应该是 - buffer_pool_size/1G

你能澄清一下吗?在我的情况下,它应该是 buffer_pool_size/96Gb,或者?我认为buffer_pool_size在我的配置中有它的默认值。

如果 innodb_flush_log_at_trx_commit 的值是多少?

是的1,但我试过2没有结果。

0 投票
2 回答
102 浏览

php - 两个日期之间的时间

我想以分钟为单位计算两个日期之间的时间,同时只包括 和 之间的时间08:00:0016:30:00也不包括周六和周日。我怎样才能做到这一点?以下是我的代码,它通常只是计算两个日期之间的时间。

我已经尝试了以下代码,但仍然无法正常工作

0 投票
0 回答
33 浏览

mysql - 如何杀死 Mysql Pending 线程?

我正在使用带有连接到 MySQL 数据库的 PHP 应用程序的 Ubuntu 18.04。通常,使用 Mytop,我会检测到一些卡住的 MySQL 线程:

正如你在上面看到的,一些线程被卡住了 19k 秒。这有时会使我的 cpu 过载,所以我的问题是:

如果在 X 秒内未解决线程,是否有任何方法可以自动执行此操作以自动终止线程?这样做的目的是消除 CPU 的过载。


据此,它是我服务器上的 PHP 应用程序,只是我不知道如何解决该部分的问题:

SPID USER PRI VIRT RES SHR S CPU MEM% 命令 124 megax 20 335M 19254 21212 S 100.00% 0.0 php-fpm:池 www 125 megax 20 335M 19254 21212 S 100.00% 0.0 php-fpm:池 www 126 megax 20 2121 33 100.00% 0.0 php-fpm:池 www 127 megax 20 335M 19254 21212 S 100.00% 0.0 php-fpm:池 www

0 投票
1 回答
149 浏览

mariadb-10.4 - 没有索引提示的 MariaDB MAX_JOIN_SIZE 错误

有 max_join_size = 300M 的 MariaDB 10.4.14 和内部有约 150,000 条记录的硬币 InnoDB 表。

一个足够简单的查询会产生 MAX_JOIN_SIZE 错误:

但是带有索引提示的相同查询效果很好。命中 ["PRIMARY", "currency_id_idx", "distribution_id"] 甚至 issue_date_idx 中的哪个索引都没有关系,即使没有索引也可以使用 USE INDEX()。

这里有什么问题?为什么在没有提示的情况下查询不起作用?

顺便说一句,这个查询在 MariaDB 10.3.24 上运行良好,在 10.5.5 上不运行

上面的 SELECT 可以在没有索引提示的情况下使用最大可能的 MAX_JOIN_SIZE 值,并且没有最大值 - 1: