yugabyte-db - 在 YugabyteDB YSQL 中分片时如何对列进行哈希处理
问题描述
[用户在YugabyteDB Community Slack上发布的问题]
在 YSQL 中,如果我的表使用在多个列上定义的主键,那么在这种情况下分片键是什么?这两列都将用于计算哈希吗?另外,我们可以指定列用作分区/分片键而不在主键中提及它们吗?如果其中一张表没有主键但需要在其中一列上分片怎么办?
解决方案
默认情况下,当主键中配置多列时,第一列是散列的,其他列按升序排列。但是您可以完全控制主键定义,这意味着您可以以任何您喜欢的方式指定它:https ://docs.yugabyte.com/latest/api/ysql/the-sql-language/statements/ddl_create_table/ #首要的关键
目前,您只能使用 PRIMARY KEY 中的列进行分片。如果表没有主键,则会在内部创建一个隐式主键,并基于该主键对表进行分片。因此,始终创建主键是最佳实践。
推荐阅读
- machine-learning - 获取 pytorch 架构的哈希值?
- javascript - 如何在 Spring Boot 中实现 User 和 Admin 控制器?
- python - 在 Azure Functions 中安装 requirements.txt 时无法解决对 numpy 的依赖
- python - 生成具有累积切片的 numpy 数组
- newline - 如何在另一个函数 (print(len(VAR))) 中使用换行符 (\n) 让这个输出在新行开始?
- javascript - 网站视频播放 - Safari 可以工作,但所有其他浏览器都不能
- javascript - 如何将现有的 jsx 排版库导入 Storybook 而不是使用 css 文件?
- python - 如何编写条件使用 django 查询集
- javascript - 在 iOS 的 javascript 中禁用长按振动
- c# - 如果现在没有运行,则使用 C# WinForms 启动一些程序