Empecé a trabajar en un proyecto existente y el desarrollador anterior había dividido una tabla en 10 tablas separadas con esquemas idénticos pero con datos diferentes.
Las tablas se ven así:
[tableName_0]
[tableName_1]
[tableName_2]
[tableName_3]
[tableName_4]
[tableName_5]
[tableName_6]
[tableName_7]
[tableName_8]
[tableName_9]
La clave primaria es un id
campo entero . La aplicación utiliza un algoritmo hash ( id
mod 10) para saber a qué tabla acceder cuando se realizan búsquedas. Por ejemplo id
= 10 resultaría en [tableName_0]
.
Combinadas, las tablas tienen probablemente 100,000 filas y la tasa de crecimiento es relativamente baja.
Entonces, mi pregunta es si esta es o no una solución viable o incluso si es una buena práctica en cualquier situación. Mi teoría es presionar para que se combinen, ya que facilitará las cosas en cuanto a UNION
s, etc. La desventaja principal es cambiar todo el código de la aplicación y si vale la pena a largo plazo.
fuente