In Salesforce, it’s generally not recommended for a parent record to have more than 10,000 child records.

Beyond this threshold, skew occurs. While Salesforce can technically store more records, it starts to run into significant, transaction-breaking problems.

Here are some concerns, and ways to mitigate them.

Record Locking
If you’re using a master-detail relationship, any update to a child will lock the parent until the transaction completes. If there are lots of updates to the children, it can cause locking issues.

Poor Performance
Related reports become slower, list views take longer to display, and transactions in general take longer.

Record Ownership
When a single user owns more than 10,000 child records, it can cause system-wide performance issues and timeouts when you update the user or update sharing rules.

Mitigations

  1. Use a lookup relationship or store the parent Id in a simple text(18) field instead of a relationship field
  2. Use a pool of owners, such as dedicated dummy users
  3. Make sure record owners are not in a role hierarchy
  4. Avoid triggers on the parent object

The takeaway
While you can have more than 10k child records, be cautious how they are designed.

Category:
Salesforce