问题标签 [vitess]

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

mysql - 如何使用两个 Docker 镜像将 MySQL 数据库与 Vitess 分片?

我发现了 Vitess,它可以让你对 MySQL 数据库进行分片。我想同时使用 MariaDB 和 Vitess 的 docker 映像,但我不太确定下一步该做什么。我正在使用 CentOS 7。

我安装了图像

登录 vitess 图像

正如网站所说,make build

我设置了变量

手册说它在主目录中,但在映像中它位于根目录中。

但在那之后我被困住了。我 laucnh 动物园管理员:./zk-up.sh

哦,好吧,让我们继续……

./vtctld-up.sh 用于网络接口

显然我无法访问该链接,因为它位于无头服务器上的 docker 中

./vttablet-up.sh 假设会调出 3 个 vttablet,但 MariaDB 在另一个 docker 中,尚未启动,如果我打开文件,则不清楚如何设置它。

有没有更容易安装的 MySQL 或 PostgreSQL 分片解决方案?或者我该如何设置?

(Docker 菜鸟在这里抱歉)

谢谢!

0 投票
0 回答
256 浏览

kubernetes - ./kvtctl.sh 处的 vitess 安装失败远程错误:rpc 错误:代码 = 不可用 desc = 传输正在关闭

我正在 minikube 中安装 vitess。我按照在 kubernetes 中安装 vitess 的说明进行操作,第 6 节。使用 vtctlclient 向 vtctld 发送命令。我收到以下错误:

我被困住了。任何人都可以在这里帮忙吗?

0 投票
1 回答
1090 浏览

kubernetes - 为什么 pod 仍处于“待处理”状态?

我对为什么我的 pod 处于待处理状态感到非常困惑。

Vitess 似乎在节点上调度 vtttablet pod 时遇到问题。我构建了一个 2-worker-node Kubernetes 集群(节点 A 和 B),并在集群上启动了 vttablets,但只有两个 vttablet 正常启动,其他三个处于挂起状态。

当我允许主节点调度 pod 时,三个待处理的 vttablet 都在 master 上启动(第一个错误,然后正常运行),我创建表,两个 vttablet 执行失败。

当我向我的 kubernetes 集群添加两个新节点(节点 C 和 D),拆除 vitess 并重新启动 vttablet 时,我发现三个 vttablet pod 仍处于挂起状态,如果我启动节点 A 或节点 B,我得到vttablet lost,并且它不会在新节点上重新启动。我拆掉了vitess,也拆掉了k8s集群,重建它,这次我使用节点C&D构建了一个2-worker-node k8s集群,现在所有的vttablet都处于待处理状态。

0 投票
1 回答
415 浏览

mysql - Vitess:使用 SQL 文件初始化键空间模式

我正在使用 helm 和 Vitess 示例中的文件101_initial_cluster.yaml来设置我的初始集群。该示例使用 SQL 字符串进行模式初始化,如下所示:

我想用一个文件替换它initial: my_initial_keyspace_schema.sql。从 Vitess 文档中,我可以看到 Vitess 确实允许使用 ApplySchema -sql_file=user_table.sql user,但我想使用 helm 文件进行初始化。

这将非常有帮助,因为将架构组织和粘贴为string. 必须先粘贴依赖于其他的表,然后再粘贴其余的表。忘记会使 Vitess 抛出错误。

0 投票
1 回答
547 浏览

kubernetes-helm - 使用 etcd 在 vi​​tess 上打开拓扑服务器失败

我正在使用 Helm 运行一个简单的示例。看看下面的values.yaml文件:

看看下面运行的当前 pod 的输出:

运行日志我看到这个错误:

我在 vagrant 后面跑,有 1 个主节点和 2 个节点。我怀疑这是eth1.

存储配置为使用 NFS。

0 投票
2 回答
305 浏览

mysql - 避免表扫描并在查询中使用索引

我正在设计一个新的数据库,并注意到我的查询没有像应有的那样扩展。当我的聚合涉及数百条记录时,我发现响应时间显着增加。我想知道我的查询是否存在严重缺陷,或者我只是没有使用正确的索引。

我对我的查询做了很多调整,但还没有想出一种方法来消除全表扫描,而是使用索引。当我使用类似于EXPLAIN查询的工具时,我看到以下内容:

  • 全表扫描通常效率低下,避免使用它们。
  • 您的查询使用 MySQL 的“文件排序”操作。这往往会减慢查询速度。
  • 您的查询使用 MySQL 的临时表。这可能需要额外的 I/O,并且往往会减慢查询速度。

桌子:

询问:

PK:id, userId, col1, col2, col3 索引:createdAt

解释:

col1此查询查找and col2、orders by分组中的最新记录createdAt,并将条目限制为 10。

0 投票
1 回答
161 浏览

javascript - 通过节点js将大blob插入vitess

我正在使用这种方法将一个大 blob 插入我的 mySQL 数据库(Blob 大小 ~40MB) 约 15 秒后,它会引发异常或 CPU 利用率达到 100%,并且在 ~25-50 秒内保持 100%。这里的整个事情都适用于小于~7MB的blob。

我正在使用节点 js,mysql

0 投票
1 回答
502 浏览

sql - 带有分片(Vitess)的 mysql 会比任何没有 SQL 数据库都快吗?

我一直试图理解为什么 nosql db 被认为比 RDBMS 更快。我知道 nosql dbs 不遵循 ACID 属性,而是遵循 BASE 原则,这就是 nosql 能够水平扩展的原因。

我在这里想了解的是,如果类似查询存在很大差异。例如,假设我们有一个搜索来搜索我们数据库中所有匹配的用户。我们在 MySQL 和任何 nosql 数据库中都有相同的数据,让我们假设对于 nosql,我们只有 1 个分片。那么查询速度是否仍然存在差异,还是会相同?

0 投票
1 回答
58 浏览

vitess - 我们可以分片特定的表而不在 vitess 中创建新的键空间吗?

例如:我想在一个键空间中创建 40 个表。在 40 个表中,我想对 3 个表进行分片。是否可以在不创建新键空间的情况下对特定表进行分片。我已经看到如何使用 vitess 仅对特定表进行分片 但为此我们需要创建新的键空间。我不想创建新的键空间。我想要一个键空间中的分片和非分片表,这可能吗?

0 投票
1 回答
132 浏览

mysql - 如何创建多个 Vitess 索引

谁能指出如何更改 Vitess 中的 VSchema 以适应多个 VIndex。