2017-12-02 18 views
0

今はSELECT * FROM user WHERE JSON_CONTAINS(users, '[1]');のようなSQLスクリプトを使用しますが、テーブル全体をスキャンすると効率が悪いです。だから私はusers列にインデックスを作成したいと思います。mysql5.7でjson配列型のインデックスを作成する方法

たとえば、usersという名前の列があり、データは[1,2,3,4]のように見えます。 JSON配列型(Generate virtual column)でインデックスを設定する方法を教えてください。私はMySQLのウェブサイト上のドキュメントを読んでいた、彼らはすべてJSON_EXTRACT()関数を使用してJSONオブジェクト型でインデックスを作成することについて話しました。

+0

Aは列がここであなたを助けにはなりません生成されました。ルックアップを効率的に実行するには、テーブルを正規化する必要があります。 –

答えて

0

あなたは少なくともあなたが意図する方法ではありません。 The JSON Data Typeで我々は読むことができます:

JSON列は、他のバイナリ型の列のように、直接 をインデックス化されていません。代わりに、がJSON列からスカラー値を抽出する生成された列に索引を作成できます。詳細 の例については、Indexing a Generated Column to Provide a JSON Column Indexを参照してください。

ので制限が来ると回避策;-)

+0

私はまたそれについて考えました、多分私は別の方法でなければなりません。 –

+0

この目的のために生成されたカラムを持つことには何も問題はありません。うまくいくはずです。 –

関連する問題