在 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)

查詢將使用索引而不是普通表掃描。