我们正在考虑使用Mysql集群进行切分。但是,我无法找到它是如何与存储过程工作的。
是否有一种方法可以根据切分键(作为过程参数传递或以某种方式单独传递)将过程调用分派到特定的碎片上?
例如,我们有一个表,在3个节点之间分块。所有具有键A的行都存储在node 1上。我想确定,当我运行procedure(A)时,它适用于node1。
*不幸的是,我们不能使用函数代替过程,因为在我们的示例中,它们返回多行
发布于 2017-04-11 03:46:49
您只需要为表(S)定义切分/分区(默认情况下,PK使用基于哈希的分区):
CREATE TABLE foo (
...
)
PARTITION BY KEY(col1)数据存储在数据节点中。mysqld (SQL )节点中的NDBCLUSTER存储引擎将使用分区/切分列(默认情况下为PK)上生成的散列来确定哪个节点组将/确实容纳该特定行。因此,在为SP中访问的表(S)指定自定义分区(S)之后,使用您指定的引用的A值的列/键,MySQL NDB集群将知道,在分区/切分列的值为A的给定表中的所有行都将位于三个节点组之一上。
你可以看到一篇关于这个主题的博客文章这里。
https://dba.stackexchange.com/questions/170584
复制相似问题