改善 MariaDB 执行时间

改善 MariaDB 执行时间

我有一个包含一张表和三个的数据库fields (id, hash, creation time)

该表有大约 3000 万条记录,执行如下查询的时间为

SELECT * from `table` WHERE hash='blahblahblah';

该查询在安装了 MariaDB 的 1vCPU 1GB Ubuntu 服务器上执行大约需要 40 秒,并且没有安装其他高使用率服务器。

现在,我将服务器升级到 32GB RAM、SSD 和 12 核 Xeon 物理服务器,并在 Ubuntu 20.10 上单独安装了 MariaDB,但执行时间仍然相似。

我尝试增加 50-server.conf 文件中的限制,也增加了 systemctl edit mariadb 中的最大内存,还编辑了 mysql/conf.d 中的 innodb_buffer_pool_size

但还是没运气。有什么方法可以提高我的 MariaDB 速度,以使用整个 CPU 和 RAM 来更快地运行。

答案1

SHOW CREATE TABLE询问性能时始终提供。

听起来你好像错过了INDEX(hash)。(PRIMARY KEY(hash)或者UNIQUE(hash),如果存在的话,则是这样的索引。)

答案2

该表大约有 3000 万条记录...
SELECT * from `table` WHERE hash='blahblahblah'; ...
此查询大约需要 40 秒才能执行

是哈希列索引?
40秒声音完全合理让 MariaDB 按顺序搜索 3000 万条记录。

顺便说一句,如果你的桌子真的是table那么考虑把它改成别的,如果你非常,非常可能会超过一个表并且数据库中充满了table1、、table2等等table3,很快就会让你头疼。

另外,你应该绝不使用保留字作为表、列等的标识符。
将要在某个时候回来咬你。

相关内容