---
title: "ST_MemSize"
draft: false
hidden: true
---
ST_MemSize — Returns the amount of memory space a geometry takes.
    
     integer
     
      ST_MemSize
     
     (
    
    geometry
    
     geomA
    
    
     )
    
    ;
   
Returns the amount of memory space (in bytes) the geometry takes.
This complements the PostgreSQL built-in database object functions pg_column_size, pg_size_pretty, pg_relation_size, pg_total_relation_size.
| ![[Note]](./images/note.png)  | |
| pg_relation_size which gives the byte size of a table may return byte size lower than ST_MemSize. This is because pg_relation_size does not add toasted table contribution and large geometries are stored in TOAST tables. pg_total_relation_size - includes, the table, the toasted tables, and the indexes. pg_column_size returns how much space a geometry would take in a column considering compression, so may be lower than ST_MemSize | 
   
     This function supports 3d and will not drop the z-index.
   
   This function supports 3d and will not drop the z-index.
  
   
     This method supports Circular Strings and Curves.
   
   This method supports Circular Strings and Curves.
  
   
     This function supports Polyhedral surfaces.
   
   This function supports Polyhedral surfaces.
  
   
     This function supports Triangles and Triangulated Irregular Network Surfaces (TIN).
   
   This function supports Triangles and Triangulated Irregular Network Surfaces (TIN).
  
Changed: 2.2.0 name changed to ST_MemSize to follow naming convention.
--Return how much byte space Boston takes up  in our Mass data set
SELECT pg_size_pretty(SUM(ST_MemSize(geom))) as totgeomsum,
pg_size_pretty(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(geom) ELSE 0 END)) As bossum,
CAST(SUM(CASE WHEN town = 'BOSTON' THEN ST_MemSize(geom) ELSE 0 END)*1.00 /
		SUM(ST_MemSize(geom))*100 As numeric(10,2)) As perbos
FROM towns;
totgeomsum	bossum	perbos
----------	------	------
1522 kB		30 kB	1.99
SELECT ST_MemSize(ST_GeomFromText('CIRCULARSTRING(220268 150415,220227 150505,220227 150406)'));
---
73
--What percentage of our table is taken up by just the geometry
SELECT pg_total_relation_size('public.neighborhoods') As fulltable_size, sum(ST_MemSize(geom)) As geomsize,
sum(ST_MemSize(geom))*1.00/pg_total_relation_size('public.neighborhoods')*100 As pergeom
FROM neighborhoods;
fulltable_size geomsize  pergeom
------------------------------------------------
262144         96238	 36.71188354492187500000