google-bigquery - BigQuery 性能对列数据长度的影响
问题描述
问题陈述 -
我们计划在 BigQuery 列中存储长度为 64 的十六进制字符串数据。与存储较小长度的字符串时相比,在这些列(具有大字符串长度)上使用过滤/连接操作运行查询时,它会影响 BigQuery 查询性能吗?
例子 -
假设有一个 BigQuery 表 -
abc.HACKERNEWS.news
列 -
id
,time
,time_ts
,encrypted_data
,news
,status
.已知 -
encrypted_data
列具有长度为 32 的字符串。询问 -
SELECT time FROM abc.HackerNews.news where encrypted_data = 'abcdefghijklmnopqrstuvwxyz123deabcdefghijklmnopqrstuvwxyzabcde' LIMIT 1000
更改 encrypted_data 长度对性能有何影响?如果存储在 encrypted_data 列中的字符串长度较短,比如 5,查询会更好地执行吗?
解决方案
有关数据大小计算,请参阅此处的此文档:
STRING(数据类型等于)2 个字节 + UTF-8 编码的字符串大小
所以回答你的问题:是的,字符串越长,查询需要处理的字节越多,速度就越慢。因此,选择较短的字符串长度可能会提高查询性能。
推荐阅读
- tornado - Pymysql通过tornado websocket从表中返回相同的结果而不是最后一行
- django - Django:将 DetailView 与表单相结合
- python - pipenv:如何强制 virtualenv 目录?
- java - Java KeyBindings 在几秒钟后停止工作
- python - 超参数估计的随机搜索和网格搜索的比较
- javascript - 在线时将数据加载到服务
- javascript - 未捕获的 ReferenceError:未定义 jqXHR
- api - Watson Assistant (Conversation) 能否将 API 作为对话的一部分?
- angular - 为什么每个 API 请求都会创建一个新会话?
- java - 在构造函数中创建对象后的字符串 null