Note I have updated the question with more info to explain why it is not a duplicate. Changes are in italics below.

I'm pretty new to Salesforce but come from a .NET/Sql Server background. So I am trying to understand how data is allocated in a Salesforce database (especially so since the standard size allocated to a database is really small compared to what I am used to.)

Basically what I want is a field in a table that is a textual description. It is something that the user can type in various notes, consequently, most of the time it is very short, a few dozen characters, but other times it can be extremely long -- 10,000 characters for example. I don't want to create a field that is 10,000 characters long, since that will quickly consume all the space.

n the databases I am used to you would create a field with a type where the space is shared -- varchar(max). These fields essentially have a big shared buffer of space so that each field is small but there is a large shared space that the field points in to.

I don't see anything like that in Salesforce, and, since it is such a common requirement, I was wondering what people recommend as the best approach to this so that I am not wasting loads of space for big, mostly empty fields.

Please note, this has been suggested as a duplicate -- however, my question refers to custom tables not the standard built in tables (as referenced in the putative duplicate.) How is the space calculated for a custom table. For example, if I want to store a table of "Notes" where are free form notes that can be any length from 0 to 20,000 characters. I don't want every row to take up 20,000 characters since most are very much shorter. I hope this clarifies my question, and I thank you in advance for your help.

  • 1
    For Custom Objects also it is around 2 KB for each record. See Salesforce record size overview
    – Mr.Frodo
    May 27, 2018 at 5:45
  • Got here from the close queue. Even with the edit, I still think this is a duplicate. As other people have mentioned, most records in Salesforce (including records for custom SObjects) consume a flat 2K of your allotted "Data" storage, regardless of how many fields or how many characters are stored in it. An object with only one field, a checkbox field = 2K per record. An object with 200 fields and that reaches the maximum total text character length (per object) of 1,600,000 characters = still 2K per record.
    – Derek F
    May 28, 2018 at 13:10
  • Being a managed platform, storage is one of the things that Salesforce abstracts away from us (the people using the platform). I imagine that Salesforce is probably doing some pretty heavy data de-duplication on their end, and the 2K per record was arrived at after measuring the "average" storage demand for their users and taking into account the extra hardware required to do whatever magic they do. Point being, unless Salesforce comes out an tells us how they do these things, it's mostly speculation.
    – Derek F
    May 28, 2018 at 13:18

1 Answer 1


To address your specific point see these two references:

What this amounts to is that you can have big rich text and long text fields in custom objects "for free".

Not the answer you're looking for? Browse other questions tagged .