admin

在数据库环境中利用集群的力量?

sql

我有一个具有通用NFS挂载的22机器集群。在每台机器上,我都可以启动一个新的MySQL实例。我创建了一个包含约7100万个条目的表,并开始了一项ADD INDEX操作。已经超过12小时,操作仍在进行中。因此,我登录到集群中其他机器上的机器后,使用以下命令在该机器上的MySQL守护程序上启动了一个新实例:

mysqld_safe --user=username

然后在同一台计算机上创建一个MySQL客户端以连接到数据库。问题是,我使用的是我用来在第一台计算机上启动客户端的确切语句:

mysql --socket=/homes/username/mysql/mysql/tmp/mysql.sock -u root -p

我能够按预期看到该客户端的所有数据库和表(由于底层的NFS挂载)。现在,如果要创建一个新表或更改一个表(当前不添加索引的表除外),我有两个问题:

  1. 这甚至是利用集群的正确方法吗?或者更确切地说,假设我面前有一项艰巨的数据挖掘任务,如何设置MySQL(在群集上没有root特权)来加快任务速度?
  2. 我用来连接到mysql的语句使用与第一台机器相同的mysql.sock文件。这意味着什么?我的意思是,我最终会遇到任何奇怪的情况吗?
  3. 我将获得任何性能提升,还是最终会减慢在另一台计算机上进行的索引操作的速度?

阅读 169

收藏
2021-07-01

共1个答案

admin

这将无法稳定运行mysqld不是为此而设计的。另外,NFS开销也不理想。

您可能需要创建一堆从属mysqld实例并并行化客户端访问。

2021-07-01