在 JSON 路径上添加索引
通过 JSON 列中的某个值过滤或排序数据的查询通常使用全表扫描。
SELECT * FROM ProductCollection
WHERE JSON_VALUE(Data, '$.Color') = 'Black'
要优化这些类型的查询,可以添加公开过滤器或排序中使用的 JSON 表达式的非持久计算列(在此示例中为 JSON_VALUE(Data,’$ .Color’)),并在此列上创建索引:
ALTER TABLE ProductCollection
ADD vColor as JSON_VALUE(Data, '$.Color')
CREATE INDEX idx_JsonColor
ON ProductCollection(vColor)
查询将使用索引而不是普通表扫描。