# Big objects: indexes, queries and limitations

*Platform Data Architect Study Guide · Data Modeling/Database Design · Last updated October 26, 2026 · https://www.certifyforce.com/study-guide/platform-data-architect/data-modeling-database-design/big-objects-indexes-queries-and-limitations*

When a big object beats a standard or custom object, how to design its immutable index, which SOQL patterns work, what big objects lack (sharing, automation, encryption, REST, standard UI) and the supported workarounds for writing, loading and displaying their data.

- Certification: Salesforce Platform Data Architect
- Exam section: Data Modeling/Database Design
- Study guide: https://www.certifyforce.com/study-guide/platform-data-architect

**Official exam objective:**

> Compare and contrast the different reasons for implementing big objects versus standard/custom objects within a production instance, alongside the unique pros and cons of utilizing big objects in a Salesforce data model.

## What the exam expects

- Recommend a big object or a standard/custom object from volume, access pattern, sharing and automation requirements.
- Design a custom big object index: required fields, the 100-character text budget, excluded field types, and the fact that it can't change after deployment.
- Write or fix big object SOQL: leading index fields, no gaps, one IN, a range only on the last field, no aggregates, no Id.
- Name what big objects don't support (sharing rules, triggers and flows, encryption, REST API, standard UI, cross-org Salesforce Connect) and the supported workaround for each.
- Load and write big object data safely: Bulk API 2.0, idempotent inserts, whole-batch retries and asynchronous Apex.

Key terms: **big object** (storage on a horizontally scalable, non-transactional database); **standard big object** (defined by Salesforce, such as FieldHistoryArchive); **custom big object** (`__b` suffix, defined by you); **index** (the composite primary key that every query must follow); **idempotent write** (an identical insert creates only one record).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Editions | EE, PE, UE and Developer "for up to 1 million records" | [Big Objects](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object.html) |
| Big objects per org | Up to 100 | [Best Practices](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object-considerations.html) |
| Supported APIs | SOQL, Bulk, Chatter, SOAP; REST not supported | [Big Objects](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object.html) |
| Record access | Object and field permissions only | [Big Objects](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object.html) |
| Index after deployment | Can't be edited or deleted | [Define Big Objects](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object-define.html) |
| Index text budget | 100 characters; Email 80, Phone 40 | [Define Big Objects](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object-define.html) |
| Not allowed in the index | LongTextArea and URL fields | [Define Big Objects](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object-define.html) |
| Range operators | Only on the last field in the query | [SOQL with Big Objects](https://developer.salesforce.com/docs/atlas.en-us.bigobjects.meta/bigobjects/big_object_querying.htm) |
| Aggregate functions | Not valid in any big object query | [SOQL with Big Objects](https://developer.salesforce.com/docs/atlas.en-us.bigobjects.meta/bigobjects/big_object_querying.htm) |
| Partial batch failure | Retry the entire batch | [Best Practices](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object-considerations.html) |

## Check yourself

- Why must a trigger that writes to a big object hand the insert to asynchronous Apex?
- When does adding a filter on a middle index field make a big object query valid?
- Which requirement immediately rules out a big object whatever the row count?
- Why does a big object query that selects Id return rows with ID 000000000000000?

## Sources

- [Big Objects](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object.html)
- [Define and Deploy Custom Big Objects](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object-define.html)
- [Big Objects Best Practices](https://developer.salesforce.com/docs/platform/big-object-impl-guide/guide/big-object-considerations.html)
- [SOQL with Big Objects](https://developer.salesforce.com/docs/atlas.en-us.bigobjects.meta/bigobjects/big_object_querying.htm)
- [Populate a Custom Big Object](https://developer.salesforce.com/docs/atlas.en-us.bigobjects.meta/bigobjects/big_object_populate.htm)
- [Field Audit Trail](https://help.salesforce.com/s/articleView?language=en_US&id=xcloud.field_audit_trail.htm&type=5)
- [How many records can I import?](https://help.salesforce.com/s/articleView?language=en_US&id=xcloud.faq_data_import_wizard_how_many_records.htm&type=5)
- [Async SOQL Retirement](https://help.salesforce.com/s/articleView?language=en_US&id=release-notes.rn_api_async_soql.htm&release=242&type=5)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 16 linked practice questions, and unlimited timed mock exams are included with the Platform Data Architect pack (USD $19): https://www.certifyforce.com/practice-exams
