问题标签 [mariadb]

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 回答
498 浏览

mysql - nodejs mysql不能与mariadb一起使用

我有一个使用 mysql 模块的 node.js 脚本,它在安装了 mysql 的本地机器上运行良好......当我尝试在我的服务器上运行它(安装 MariaDB)时,它无法连接到服务器(每个我尝试的选项)。

当我尝试安装 mariasql 模块时,它失败了......

谁能建议该怎么做?还是支持两者的模块?

谢谢!

0 投票
1 回答
5708 浏览

mysql - MariaDB vs Drizzle vs Percona Server vs MySQL

我已经是 MySQL 用户很长时间了。我想开始使用最流行的叉子之间的所有不同变体。问题是我找不到它们之间的任何好的比较,我最终只会尝试所有这些。我担心的是生产方面,因为我不会在生产中试验所有这些分叉。

您是否在生产环境中运行过任何 MySQL 分支?

有什么优势?有什么缺点?

0 投票
4 回答
3265 浏览

mysql - 根据其他列的顺序从组中选择一个值

问题

假设我有这张桌子tab小提琴可用)。

我按 对行进行分组g,并且对于每个组,我想要一个来自 column 的值v。但是,我不想要任何值,但我想要来自带有 maximal 的行的值a,以及来自所有这些的带有 maximal 的行的值b。换句话说,我的结果应该是

当前解决方案

我知道一个查询来实现这一点:

问题

但我认为这个查询相当难看。主要是因为它使用了一个依赖子查询,这感觉就像一个真正的性能杀手。所以我想知道这个问题是否有更简单的解决方案。

预期答案

我对这个问题最有可能的答案是 MySQL(或 MariaDB)的某种附加组件或补丁,它确实为此提供了一个功能。但我也欢迎其他有用的灵感。任何没有依赖子查询的工作都可以作为答案。

如果您的解决方案仅适用于单个排序列,即无法区分catand horse,请随意提出该答案,因为我希望它对大多数用例仍然有用。例如,100*a+b一种可能的方法是按两列对上述数据进行排序,同时仍然只使用一个表达式。

我有一些非常老套的解决方案,可能会在一段时间后添加它们,但我会先看看是否有一些不错的新解决方案会先出现。


基准测试结果

由于仅通过查看它们很难比较各种答案,因此我对它们进行了一些基准测试。这是在我自己的桌面上运行的,使用 MySQL 5.1。这些数字不会与任何其他系统进行比较,只能相互比较。如果性能对您的应用程序至关重要,您可能应该使用您的真实数据进行自己的测试。当有新的答案出现时,我可能会将它们添加到我的脚本中,然后重新运行所有测试。

因此,到目前为止,我自己的解决方案似乎并不是那么糟糕,即使使用依赖子查询也是如此。令人惊讶的是,acatt 的解决方案也使用了依赖子查询,因此我认为它的性能要差得多。可能是 MySQL 优化器无法处理的问题。RichardTheKiwi 提出的解决方案似乎也具有良好的整体性能。其他两种解决方案在很大程度上取决于数据的结构。对于许多小团体,xdazz 的方法优于所有其他方法,而 Dems 的解决方案在少数大型团体中表现最好(尽管仍然不是特别好)。

0 投票
1 回答
935 浏览

mysql - MySQL系统数据库表可以转换成InnoDB吗?

我最近安装了 MySQL 5.5。我正在InnoDB用作我所有数据库的引擎。我注意到mysql数据库默认值及其所有表(用户、数据库等)都是 MyISAM. 他们不能/不应该有什么理由InnoDB吗?有谁知道MySQL是否需要mysql数据库MyISAM

0 投票
1 回答
10645 浏览

mysql - 为什么我的 MySQL 组这么慢?

我正在尝试查询接近 20M 行的分区表(按月)。我需要按 DATE(transaction_utc) 以及 country_id 进行分组。如果我关闭 group by 和聚合返回的行刚刚超过 40k,这并不算多,但是添加 group by 会使查询显着变慢,除非所述 GROUP BY 在 transaction_utc 列上,在这种情况下它变得很快。

我一直在尝试通过调整查询和/或索引来优化下面的第一个查询,并达到了下面的点(大约是最初的 2 倍)但是仍然坚持使用 5s 查询来汇总 45k 行,这似乎是方式太多了。

作为参考,这个盒子是一个全新的 24 个逻辑核心、64GB RAM、Mariadb-5.5.x 服务器,其可用的 INNODB 缓冲池比服务器上的索引空间多得多,因此不应该有任何 RAM 或 CPU 压力。

因此,我正在寻找有关导致速度变慢的原因的想法以及加快速度的建议。任何反馈将不胜感激!:)

好的,进入细节...

以下查询(我实际需要的查询)大约需要 5 秒 (+/-),并返回少于 100 行。

相同查询的 EXPLAIN SELECT 如下所示。请注意,它没有使用 transaction_utc 键。它不应该使用我的覆盖索引吗?

现在谈谈我试图确定发生了什么的其他几个选项......

以下查询(更改分组依据)大约需要 5 秒 (+/-),并且仅返回 3 行:

以下查询(删除分组依据)需要 4-5 秒 (+/-) 并返回 1 行:

以下查询需要 .00X 秒 (+/-) 并返回约 45k 行。这对我来说表明,我们最多只尝试将 45K 行分组到少于 100 个组中(如在我的初始查询中):

表模式:

0 投票
2 回答
813 浏览

mysql - 将转储文件(.dbo 文件)加载到 mariadb 数据库中

我有一个.dbo文件,我需要将转储文件加载到 mariadb 中。怎么可能?在 MySQL 我试过这样:

mysql -u root -p dbname -e " source path/test.dbo"

但同样不适用于 MariaDB。

有什么想法???如何在 PostgreSQL 中如此相同?

0 投票
2 回答
3833 浏览

mariadb - 更改 mariadb 中的数据目录

我正在尝试更改mariadb中的数据目录,在更改ini文件中的数据目录路径后,尝试重新启动服务,它无法启动!显示如下警告:

在 MySQL 中,数据目录更改工作正常。但我不知道为什么同样不能使用mariadb.

只有默认路径有效...

0 投票
2 回答
7928 浏览

mysql - LOAD DATA INFILE 在 mariadb 中不起作用

我正在尝试从 mysql 迁移到 mariadb。在这个时候,我可能会遇到 mariadb 的问题。

当我可以尝试将数据文件加载到表中时,它会显示如下错误:

SQL 错误 (29): 找不到文件'C:/Documents and Settings/Administrator/Local Settings/Temp/SAMPLE/DATA_TEMP1351761841668/SampleFile0' (Errcode: 2)

但是该文件已经存在于路径中......

另一点是相同的命令成功地适用于 MySQL。MariaDB 有权限问题吗?

请参阅下面我的查询:

当改变路径时,就像"C:/SampleFile0",它正常工作一样。文件夹中的路径Administrator不起作用。

任何人都可以在这方面帮助我吗???我是 MariaDB 的新手。

0 投票
2 回答
708 浏览

mysql - MariaDB 中的 TRUNCATE TABLE 挂起

我正在尝试从 mysql 迁移到 mariadb。这次我可以面对 mariadb 的另一个问题。

有时TRUNCATE TABLE查询会挂起。但是在 MySQL 中,这个问题并没有发生。

任何人都可以在这方面帮助我吗???我是 MariaDB 的新手。

0 投票
2 回答
454 浏览

mysql - 仅适用于 MyIsam 存储引擎的最常见和最重要的 SQL 命令?

最近在我们的一个讨论中提到,使用基于 MyISAM 的旧 MySQL 部署移动旧的遗留系统不能轻易地被基于 InnoDB 的 MySQL 或 MariaDB 部署取代。出现的原因是到处都有太多的 MyISAM only SQL 命令。我还没有看到代码,所以我想知道他们指的是什么 SQL 命令。

我只知道下面几个与表锁定相关的。它可能在理论上仍然可以与 InnoDB 一起使用,但更适合 MyISAMMERGEMEMORY支持表锁定的存储引擎。

如果还有更多,或者点我收藏一下。将不胜感激。

- 编辑 -

我会把我找到的所有其他东西都放在这条线下面。