<!--
title: Specific types for performance
domain: app-frameworks
topic: Performance Optimization
language: Markdown
source: pydantic/pydantic
updated: 2024-12-03
url: https://awesomereviewers.com/reviewers/pydantic-specific-types-for-performance/
-->

Using concrete types instead of abstract container classes in data models improves validation performance. More specific types require fewer checks and coercion attempts, resulting in faster validation. Additionally, ensure proper model parametrization to prevent unnecessary revalidation, which can trigger validators repeatedly.

For example, prefer:
```python
from pydantic import BaseModel

class Model(BaseModel):
    items: list[str]  # Concrete type
```

Instead of:
```python
from collections.abc import Sequence
from pydantic import BaseModel

class Model(BaseModel):
    items: Sequence[str]  # Abstract type - incurs more validation overhead
```

This optimization is particularly important in performance-sensitive code paths where validation occurs frequently.
