开发者社区 > 数据库 > 数据仓库 > 正文

云数据仓库ADB中json不是建了索引吗?我随便找个字段也崩?

"问题1:云数据仓库ADB中json不是建了索引吗?我随便找个字段也崩?
问题2:但是这个表,content 列我是有建索引的哦
e3fa791409e525257adc80033d41091d.png
另个两个克隆表sls_log_kgameslog_2、sls_log_kgameslog_3 用了 INDEX_ALL='Y' 参数,就没有自动对json列建索引,而我应该是select了其中一个。"

展开
收起
十一0204 2023-08-09 12:12:37 153 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果没有正确使用语法或函数,或者查询的条件不符合索引的使用规则,可能会导致性能下降或查询失败的情况。这可能是你所遇到的问题。

    为了优化JSON字段的查询性能,你可以考虑以下几点:

    使用合适的JSON函数:ADB提供了一些特定的JSON函数,如JSON_EXTRACT、JSON_ARRAY_LENGTH等,可以用于查询和处理JSON数据。确保你正确使用这些函数来提取和过滤JSON字段的数据。

    创建索引:尽管JSON字段默认没有直接的索引支持,但ADB提供了JSON路径索引的功能。你可以使用CREATE INDEX语句创建JSON路径索引,以加速对JSON字段的查询操作。请注意,创建和维护JSON路径索引会对写入性能产生一定的影响。

    数据优化:根据你的查询需求和数据特点,考虑优化数据存储结构。如果某些JSON字段的查询频率较高,你可以将其拆分为单独的列,以便更高效地进行查询操作。

    数据分区:根据数据的特点和查询模式,考虑使用ADB的分区功能。将数据按照一定的规则划分为多个分区,可以提高查询性能并减少IO开销。

    2023-08-15 20:09:36
    赞同 展开评论 打赏
  • 意中人就是我呀!

    "回答1:是这样的,json列从某个版本开始不再默认创建索引,需要手动创建。可以参考文档:https://help.aliyun.com/zh/analyticdb-for-mysql/developer-reference/json?spm=a2c4g.11186623.0.i1
    回答2:json列的默认行为变更,没有体现在元数据中,这个后续产品上会fix。而当前这个列的确是没有索引的。此回答整理至钉群“云数据仓库ADB-开发者群”。"

    2023-08-09 12:30:52
    赞同 1 展开评论 打赏

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

相关产品

  • 云原生数据仓库 AnalyticDB PostgreSQL版
  • 相关电子书

    更多
    消电行业数据中台解决方案白皮书 立即下载
    (终极版)2020阿里云金融数据中台报告 立即下载
    2020年中国乳制品行业数据中台研究报告 立即下载