El planificador de consultas tiene que hacer una búsqueda lineal de la información de restricción para cada partición de tablas utilizadas en la consulta, para determinar cuáles están realmente involucradas, las que pueden tener filas necesarias para los datos solicitados. La cantidad de planes de consulta que el planificador considera crece exponencialmente a medida que se une a más tablas. Entonces, el lugar exacto donde esa búsqueda lineal se suma al tiempo suficiente para ser problemático realmente depende de la complejidad de la consulta. Cuantas más combinaciones, peor será golpeado por esto. La cifra de "hasta cien" surgió de la observación de que el tiempo de planificación de consultas se estaba sumando a una cantidad de tiempo no trivial incluso en consultas más simples en ese punto. En aplicaciones web en particular, donde la latencia del tiempo de respuesta es importante, eso es un problema; por lo tanto, la advertencia.
¿Puedes apoyar 500? Por supuesto.Pero va a buscar cada una de las 500 restricciones de verificación para cada plan de consulta que involucre esa tabla considerada por el optimizador. Si el tiempo de planificación de consultas no le preocupa, tal vez no le importe. Pero la mayoría de los sitios terminan disgustando la proporción de tiempo dedicado a la planificación de consultas con tantas particiones, que es una de las razones por las que el partición mensual es el estándar para la mayoría de los conjuntos de datos. Puede almacenar fácilmente 10 años de datos, divididos mensualmente, antes de comenzar a cruzar hacia donde comienza a notarse la sobrecarga de planificación.
No puedo comentar sobre Postgres, pero ¿las particiones mensuales no tendrían más sentido? –
Es casi seguro que lo harían; Escogí semanalmente para obtener un número más grande de forma más realista. Uno podría considerar particiones mensuales de más de 20 años en su lugar. Estoy interesado principalmente en las restricciones, y cuál es la diferencia entre, es decir, 50 v.s. 100 particiones – DNS
a menudo existe una "regla de oro" para un RBDMS basado en el número de filas por partición. Para el servidor SQL, es alrededor de 20 millones de filas –