2015-09-25 10 views
11

Django 1.8 fornisce HStoreField e Django 1.9 fornirà JSONField (che utilizza jsonb) per PostgreSQL.Quando utilizzare HStoreField anziché JSONField?

La mia comprensione è che hstore è più veloce di json, ma non consente il nesting e consente solo le stringhe.

Quando si dovrebbe usare l'altro? Si dovrebbe preferire l'altro? Hstore è ancora il chiaro vincitore in termini di prestazioni rispetto a JSONB?

risposta

10

Se è necessario l'indicizzazione, utilizzare jsonb se si è in data 9.4 o più recente, altrimenti hstore. Non c'è davvero alcun motivo per preferire hstore su jsonb se entrambi sono disponibili.

Se non è necessario l'indicizzazione e l'elaborazione veloce e si stanno solo memorizzando e recuperando dati convalidati, utilizzare il numero json. A differenza delle altre due opzioni, questo conserva chiavi duplicate, formattazione, ordinamento delle chiavi, ecc.