PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Postgresql JSONB arrive. Que faut-il utiliser maintenant ? Hstore ? JSON ? VAE ?

Ça dépend. Si vous vous attendez à avoir beaucoup d'utilisateurs, un volume de transactions très élevé ou un nombre insensé de récupérations d'attributs par requête, je dirais d'utiliser HSTORE. Si, toutefois, votre application démarre petit et grandit au fil du temps, ou a relativement peu de transactions qui récupèrent des attributs, ou en récupère seulement quelques-unes par requête, alors utilisez JSON. Même dans ce dernier cas, si vous ne récupérez pas beaucoup d'attributs mais que vous vérifiez souvent une ou deux clés dans WHERE clause de vos requêtes, vous pouvez créer un index fonctionnel pour accélérer les choses :

CREATE INDEX idx_foo_somekey ON foo((bar ->> 'somekey'));

Maintenant, quand vous avez WHERE bar ->> somekey , il doit utiliser l'index.

Et bien sûr, il sera plus facile d'utiliser des données imbriquées et de passer à jsonb lorsqu'il sera disponible.

Je pencherais donc pour JSON à moins que vous ne sachiez avec certitude que vous allez botter le cul de votre serveur avec une utilisation intensive des récupérations de clés avant de pouvoir passer à la version 9.4. Mais pour être sûr de cela, je dirais, faites une analyse comparative avec les volumes de requêtes anticipés maintenant et voyez ce qui fonctionne le mieux pour vous.