sql >> Base de Datos >  >> RDS >> PostgreSQL

Se acerca Postgresql JSONB. ¿Qué usar ahora? ¿Tienda? ¿JSON? EAV?

Eso depende. Si espera tener muchos usuarios, un volumen de transacciones muy alto o una cantidad increíble de extracciones de atributos por consulta, diría que use HSTORE. Sin embargo, si su aplicación comenzará siendo pequeña y crecerá con el tiempo, o tendrá relativamente pocas transacciones que obtengan atributos, o solo obtenga algunas por consulta, entonces use JSON. Incluso en el último caso, si no está obteniendo muchos atributos pero revisando una o dos claves a menudo en WHERE cláusula de sus consultas, puede crear un índice funcional para acelerar las cosas:

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

Ahora, cuando tienes WHERE bar ->> somekey , debe usar el índice.

Y, por supuesto, será más fácil usar datos anidados y actualizar a jsonb cuando esté disponible para usted.

Así que me inclinaría por JSON a menos que esté seguro de que va a patear el trasero de su servidor con un uso intensivo de búsquedas de claves antes de tener la oportunidad de actualizar a 9.4. Pero para estar seguro de eso, le diría que haga una evaluación comparativa con los volúmenes de consultas anticipados ahora y vea qué funciona mejor para usted.