2010-09-12 47 views
1

我有一个22个机器群集,具有通用的NFS安装。在每台机器上,我可以启动一个新的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. 我会有任何性能上的提升吗?或者我会结束 减慢发生在不同的 机器上的索引操作 ?
+1

你是说你正在运行几个mysql实例,指向NFS挂载上的相同数据库文件? – nos 2010-09-12 16:45:41

+0

@nos:现在还没有几个,只有2个。我从来没有想过它会工作,认为MySQL会抛出一个错误,但它让我创建一个实例。 – Legend 2010-09-12 16:51:22

+0

在考虑集群数据库服务器之前,您是否分析了瓶颈?你用完了RAM吗?在CPU之外还是有问题的磁盘/网络性能? – 2010-09-12 16:53:16

回答

3

这将无法稳定工作mysqld是不是为此。另外,NFS的开销并不理想。

您可能需要制作一堆slave mysqld实例,并行化客户端访问。

+0

谢谢你。我担心在我的情况下NFS会成为一个诅咒。 – Legend 2010-09-12 17:24:24