Mysql - Consulta para obtener las tablas que tengan particiones
Breve introducción
La mayoría de motores de bases de datos permiten particionar las tablas.
La partición no es más que un tipo de subtabla que permite trocear un conjunto de datos a partir de una condición. Esta condición suele ser un campo fecha.
Caso de uso
Supongamos que tenemos una tabla donde acumulamos todas las peticiones http hacia nuestra web. La página tiene tanto tráfico que al día se pueden guardar cien mil registros, eso significa que dentro de poco tiempo se pasará a millones y la típica consulta por día podría verse afectada en rendimiento.
La estrategia a seguir sería particionar dicha tabla por fecha, por día (por ejemplo), así pues la consulta cuando se haga por fecha no tendrá que hacer un full scan por todas las subtablas mejorando el tiempo de respuesta.
Una forma de descubrir que tablas tienen particiones y como están configuradas en mysql/mariadb usando una consulta es la siguiente
SELECT DISTINCT TABLE_NAME
FROM information_schema.partitions
WHERE 1
AND TABLE_SCHEMA=DATABASE()
-- AND TABLE_NAME = 'tu tabla'
AND PARTITION_NAME IS NOT NULL
ORDER BY 1
Autor: Eduardo A. F.
Publicado: 26-12-2020 21:43