【发布时间】:2020-07-26 09:27:03
【问题描述】:
我正在尝试索引内容是可变长度字符串的 json 数组,但我无法确定它是否可能,更不用说可扩展了。
关于使用新的多值索引索引 JSON 数据的一个非常相似的问题在这里:Indexing JSON column in MySQL 8
执行该问题的语法,但使用 CHAR 不适合我,并且无论如何都会以错误结束。更改名称并调整我的数据的 CHAR 长度后:
ALTER TABLE catalog ADD INDEX idx_30144( (CAST( j_data->>'$."30144"' AS char(250) ARRAY)) );
我收到此错误
1034 - Incorrect key file for table 'catalog'; try to repair it
试试这个:
ALTER TABLE catalog ADD INDEX idx_30144( (CAST( j_data->>'$."30144"' AS varchar(250) ARRAY)) );
给出这个错误:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(250) ARRAY)) )' at line 1
这是一个 InnoDB 表,因此 1034 错误显然不准确。它在大约 2 秒内完成,因此虽然它可能空间不足,但它发生得太快而无法看到,并且驱动器上有 350 GB 可用空间。
理想情况下,我有超过 200 个这样的 JSON 节点想要索引。如果这是一个巨大的存储空间,我可以对其中的一部分感到满意,但我首先需要知道它是否可能。
【问题讨论】:
标签: mysql arrays json indexing