Agota primero las opciones baratas: mejores índices, archivar filas frías, sacar las columnas grandes y réplicas de lectura para la carga de lectura. Después particiona la tabla, normalmente por tiempo o por inquilino, para que cada partición siga siendo pequeña y las antiguas se puedan eliminar al instante. El sharding entre bases de datos separadas va el último, porque te cuesta consultas entre shards, transacciones distribuidas y rebalanceo, y la elección de clave de shard es muy difícil de cambiar después.
Por qué lo preguntan los entrevistadores
El entrevistador quiere ver que escalas en orden de coste en vez de saltar a la solución más compleja. Está atento a la distinción entre particionar dentro de una base de datos y hacer sharding entre varias, a una discusión sensata de la clave de shard incluidos los puntos calientes, y a la realidad operativa de migrar una tabla viva. Ir directo al sharding suele ser una mala señal.
Cómo estructurar tu respuesta
- Diagnostica primero: si son escrituras, mantenimiento de índices o contención de bloqueos.
- Ordena las opciones de la más barata a la más invasiva.
- Explica el particionado y los beneficios de poda y retención.
- Cubre la elección de clave de shard y qué pierdes al hacer sharding.
Ejemplo de respuesta
Primero averiguaría qué está lento de verdad, porque una tabla grande no es automáticamente un problema. Normalmente es el mantenimiento de índices en cada insert, o unos cuantos índices que nadie usa, o el autovacuum quedándose atrás. Así que empiezo por lo barato: quitar los índices que nadie usa, mover una columna grande de texto o JSON a una tabla lateral para que las filas principales sigan siendo compactas, y archivar todo lo anterior a la política de retención. Si de verdad sigue siendo demasiado grande, particiono, normalmente por tiempo si son datos tipo evento, lo que mantiene cada partición pequeña, permite al planificador podar hasta el rango relevante y convierte borrar los datos del año pasado en eliminar una partición en lugar de un delete que corre un día entero. El sharding es el último recurso porque cambia el modelo de programación: los joins entre shards desaparecen, las transacciones pasan a ser distribuidas y el rebalanceo es un proyecto. Si hago sharding, la clave se piensa de verdad, porque hacer sharding de una tabla de eventos por id de cliente te da un shard caliente en cuanto un cliente es diez veces mayor que el resto.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo elegirías una clave de shard que evite puntos calientes?
- ¿Cómo migras una tabla viva a una particionada sin cortar el servicio?
- ¿Qué consultas se vuelven caras una vez que los datos están en shards?
Más preguntas para Desarrollador backend
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas