可以使用多值索引或虛擬列上的索引在陣列元素上創建索引。是否可以在陣列元素的子欄位上創建索引?例如
create table link
(
id bigint not null primary key,
...
left json not null
)
左列結構:
[{
"fieldId": 123, ...
}]
多值索引:可以創建但查詢時不使用
ALTER TABLE link ADD INDEX IDX_LEFT_FIELD( (CAST(`left`->'$[*].fieldId' AS unsigned ARRAY)) );
虛擬列:可以創建但每行上的列 left_field_id 產生值 0 而不是子欄位 fieldId 的值
ALTER TABLE link
ADD COLUMN `left_field_id` bigint GENERATED ALWAYS AS (`left`->'$[*].fieldId') Virtual NULL AFTER `left`;
我想知道上面的陳述有什么問題嗎?
uj5u.com熱心網友回復:
正如我所見,使用了索引。
演示
ID 選擇型別 桌子 磁區 型別 可能的密鑰 鑰匙 key_len 參考 行 過濾 額外的 1 簡單的 關聯 空值 范圍 IDX_LEFT_FIELD IDX_LEFT_FIELD 9 空值 5 100.00 使用 where
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395612.html
下一篇:如何同時映射3個或更多陣列
