Statistical tables partitioned by academic year for optimal query performance and easier archiving of historical data.
Strategic composite indexes on frequently queried combinations like (department_id, lycee_type, status) for fast filtering.
FULLTEXT indexes on name and description fields enabling fast search across institutions, formations, and careers.
Covering indexes that include frequently accessed columns to avoid table lookups and reduce I/O operations.
Pre-computed aggregations for complex statistical queries and dashboard metrics to ensure sub-second response times.
Separate read replicas for heavy analytical workloads while maintaining write performance on the master database.
Series: ~50 records
Lycees: ~2,000 records
Institutions: ~500 records
Formations: ~5,000 records
Careers: ~1,000 records
Core Data: ~500MB
Statistics: ~2GB/year
Indexes: ~1GB
Total (5 years): ~12GB
Simple searches: <50ms
Complex filters: <200ms
Statistical reports: <1s
Full-text search: <100ms
Database: MySQL 8.0+
Search: Elasticsearch
Cache: Redis
Analytics: ClickHouse