Как PostgreSQL организует хранение данных в куче (heap) и что такое TOAST? В каких случаях используется сжатие данных в TOAST-таблицах?