MySQL可以动态地为JSON列创建索引吗?

时间:2018-08-12 15:36:57

标签: mysql sql

假设您有一个名为slug的JSON列,其结构如下:

{
    "en_US": "slug",
    "nl_NL": "nl/different-slug"
}

可以通过在表中添加指向en_USnl_NL的值的生成列来建立索引。效果很好,但是添加第三个语言环境将需要更新表架构。

是否可以让MySQL自动为JSON中的所有键值对建立索引,而无需在架构中明确定义它们?

1 个答案:

答案 0 :(得分:1)

json data type上的mysql手册所述:

  

JSON列与其他二进制类型的列一样,不会直接建立索引;相反,您可以在生成的列上创建索引,该索引从JSON列提取标量值。有关详细示例,请参见索引生成的列以提供JSON列索引。

因此,答案是否定的,mysql无法自动索引json列的内容。您需要定义和索引生成的列。