Skip to main content Go to GitLab Docs homepage
What's new?
What's new? Get free trial
  • Use GitLab
  • GitLab Duo
  • GitLab Orbit
  • Extend
  • Install
  • Administer
  • Subscribe
  • Contribute
  • Solutions
Contribute to GitLab
Tutorial: Make a GitLab contribution
Architecture
Development Rake tasks
Development processes
Development style guides
Feature development
ActivityPub
Advanced search
AI
Application limits
Application secrets
Application settings
Application SLIs
Approval rules
Audit events
Auto DevOps
Backup and Restore
Built-in project templates
Callouts
Cells
CI/CD
Code comments
Code intelligence
Code Owners
Source Code Management
Data science
Data Seeder
Database
Adding database indexes
Database required stops
Avoiding downtime in migrations
Batched background migrations
Batching best practices
Batch iteration in a tree hierarchy
Cached queries guidelines
Case study - filtering by label
Case study - namespaces storage statistics
ClickHouse
Client-side connection pool
Constraint naming convention
Database Dictionary
Database Lab and Postgres.ai
Database load balancing
Database migration pipeline
Database review guidelines
Database reviewer guidelines
Database check-migrations job
DB Migrate multi-version upgrade job
DB dump
Deduplicate database records
Delete existing migrations
Enums
Foreign keys and associations
Hash indexes
Insert into tables in batches
Introducing a new database migration version
Iterating tables in batches
JiHu merge requests
Large tables limitations
Layout and access patterns
Maintenance operations
Migration ordering
Migrations style guide
Multiple databases
Namespaces
Navigation sidebar
NOT NULL constraints
Offset pagination optimization
Ordering table columns
Pagination guidelines
Polymorphic associations
Post-deployment migrations
Query comments with Marginalia
Query count limits
Query performance guidelines
Query Recorder
Rename database tables
Scalability patterns
Read-mostly pattern
Time decay pattern
Serializing data
Setting multiple values
SHA1 as binary
Single Table Inheritance
Semantic Versioning of Database Records
Squashing migrations
Sharding guidelines
SQL guidelines
SQL views
Strings and the Text data type
Swapping tables
Table partitioning
Transaction guidelines
Troubleshooting and debugging
Understanding EXPLAIN plans
Verifying database capabilities
Design and UI
Development seed files
Distributed tracing
Email OTP
Event Store
Exact code search
Export CSV
Frontend development
Geo
Git LFS
Git object deduplication
Gitaly
GitLab Flavored Markdown (GLFM)
GitLab Shell
Gitpod internal configuration
GraphQL
Generating chaos
Principles of Importer Design
Identity verification
Integrations
Internal analytics
Internal API
Issuable-like Rails models utilities
Issue types
Jenkins in local environments
Jira development environment
JSON guidelines
Kubernetes integration
Logging
MCP server
Observability
Observability for stage groups
Package
Authentication
Permissions
Product Qualified Lead (PQL)
Pry debugging
VS Code debugging
Build and deploy real-time view components
Redis
Remote Development Workspaces
Repository storage moves
Routing
Sec section
Sidekiq
Solargraph
Spam protection and CAPTCHA
Uploads
Value Stream Analytics
Verify stage
Wikis
Work items and work item types
Work items widgets
Workhorse
Prometheus metrics
Organization
Utilities
GitLab project pipelines
Contribute to GitLab Runner
Contribute to GitLab Pages
Contribute to GitLab Distribution
Contribute to documentation
  1. GitLab Docs /
  2. Contribute /
  3. Contribute to GitLab /
  4. Feature development /
  5. Database /
  6. Scalability patterns

Database Scalability Patterns

  • Read-mostly
  • Time-decay
GitLab Docs logo
  • Facebook
  • LinkedIn
  • Twitter
  • YouTube
Creative Commons License
Company
  • About GitLab
  • View pricing
  • Try GitLab for free
Feedback
  • View page source
  • Edit in Web IDE
  • Contribute to GitLab
  • Suggest updates
Help & Community
  • Get certified
  • Get support
  • Post on the GitLab forum
Resources
  • Terms
  • Privacy statement
  • Use of generative AI
  • Acceptable use of user licenses