2015-11-25 19 views
5

Laravelアプリケーションを構築していますが、コア機能はかなり大きなJSONオブジェクトで駆動されます。 (最大のものは1000〜1500行です)。かなり大きなJSONオブジェクトをMySQLに保存するにはどうすればいいですか

私は、ファイルやデータブロックを格納するためにMySQLよりも優れたデータベース選択肢があることを知っていますが、さまざまな理由からアプリケーションにMySQLを使用する必要があります。

私の質問は、JSONオブジェクトをMySQLで最も効果的に保存する方法です。私は、データを保持する列について何も照会する必要はありません。それを識別するための他の列があります。

ID、タイトル、作成-で、更新-で、JSON-blobthingy

任意のアイデア:このような何か?

+1

TEXTとして保存することもできますが、MongoDBやRedisに変更することをお勧めします。これは、リレーショナルアーキテクチャではなくドキュメントストレージ用に設計されているためです。 – thodorisbais

+0

'LONGTEXT'は –

+0

にお手伝いします。しかし、私はMySQLを使用する必要があり、残りのシステムはリレーショナルデータモデルに基づいています。 – Christoffer

答えて

10
  • あなたはMySQLのバージョン5.7.8以上を持っている場合は、JSONデータ型を使用することができます。
  • JSONファイルをサーバーに保存し、MySQL経由でその場所を参照するだけで済みます。
  • TEXT typesのいずれかを使用することもできます。
+1

彼は保存されたJSONの任意のクエリを行う必要はない限り、私は直接TEXT型に行くだろう。その列を索引付けしないように注意してください。 – yergo

+0

'LONGTEXT'が役に立ちます。 –

+0

私は彼らが> 5.7.8にサーバーを更新できることを望んでいます。それでも、JSONを保存するときにJSONを検証する必要はありません。スキーマを作成して解析するときにスキーマを検証するためです。また、アプリケーションリレーショナル構造に結びつけるシンプルで滑らかな方法が本当に必要です。だから私は今テキストのために行くかもしれない。ありがとうございました! – Christoffer

1

私が与えることができる最高の答えは、MySQL 5.7を使用することです。このバージョンでは、新しい列タイプJSONがサポートされています。これは大きなJSONを非常にうまく処理します(明らかに)。

https://dev.mysql.com/doc/refman/5.7/en/json.html

関連する問題