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

Qué tipo de datos elegir json o jsonb o texto

Suponiendo que esté hablando de JSON real y estricto (sin peculiaridades como claves sin comillas)...

json no es muy diferente de text . No hace mucho aparte de validar JSON .

jsonb es una bestia diferente en comparación con estos dos:es una estructura de datos completa con su propio formato interno que tiene muchas más operaciones disponibles en las búsquedas. Por ejemplo json no tiene = aplicable (operador de igualdad). jsonb posee. (text tiene también, aunque es semánticamente diferente.)

Es mucho más sensato indexar, pero debe transformarse de un lado a otro durante las lecturas y escrituras.

Dado eso, jsonb no parece una buena elección aquí.

... Así que solo queda una decisión por tomar:

¿Desea asegurarse de que su base de datos contenga solo valores JSON válidos en su columna? ¿En el nivel de la base de datos? ¿O confía en que todos los clientes de esa base de datos (aplicaciones de servidor, por lo general) solo proporcionen datos válidos?

json es una opción relativamente segura de cualquier manera. Usando text teóricamente podría mejorar el rendimiento por un margen insignificante debido a la ausencia de validación, pero solo obtendrá números específicos mediante la evaluación comparativa. Pero no tendría esa protección contra valores que no son JSON, y un error accidental en el cliente podría pasar desapercibido. ¡Prueba responsablemente!