Cómo seleccionar entre un rango de particiones en MySQL

kikee1222

¡Espero que puedas ayudarme!

Tengo varias particiones en mi base de datos durante los últimos años. Su convención de nomenclatura es pYYYYMM. Por ejemplo, p202206 sería para junio de 2022.

¿Cómo haría para decir: SELECCIONAR * DE LA TABLA donde las particiones están dentro de los últimos 6 meses?

Lo siguiente funciona: ¿parece esto más eficiente que tener rangos de fechas en la declaración where ya que está especificando explícitamente las particiones para buscar?

    WITH t1 as (SELECT GROUP_CONCAT(PARTITION_NAME) FROM information_schema.PARTITIONS
WHERE TABLE_SCHEMA = 'ran' AND TABLE_NAME = 'order_data' and PARTITION_DESCRIPTION > 2016)
SELECT * INTO @items FROM t1;
WITH t2 as (select concat('select * from order_data PARTITION(',@items,')'))
SELECT * INTO @query FROM t2;
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

¡Muchas gracias de antemano!

Bill Karwin

Simplemente usaría el rango de fechas en la cláusula WHERE.

Puede confirmar que eliminará la partición con EXPLAIN PARTITIONS (creo que las versiones recientes de MySQL incluyen la información de la partición de forma predeterminada en la salida EXPLAIN).

Si la poda de particiones funciona, es prácticamente el mismo rendimiento que especificar las particiones.

Solo debe especificar particiones si las condiciones de su consulta no permiten que la eliminación de particiones funcione automáticamente.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Cómo seleccionar entre un rango de particiones en MySQL

Cómo seleccionar elementos entre un rango en jQuery

Cómo seleccionar un rango de elementos en jQuery

Cómo seleccionar un rango de fechas en awk

¿Cómo consultar filas entre un rango de fechas específico en MySQL de manera eficiente?

¿Cómo seleccionar fechas donde algunas fechas de rango están en un rango dado?

¿Cómo seleccionar un rango de fechas en un grupo de pandas por?

¿Cómo seleccionar un rango de fechas en un grupo de pandas por?

¿Cómo seleccionar un rango de valores en una columna de marco de datos de pandas?

¿Cómo SELECCIONAR todas las filas dentro de un cierto rango de fecha / hora con un cierto tamaño de paso de marca de tiempo en MySQL?

Seleccionar un rango de variables en R

¿Cómo seleccionar celdas en función de una cadena específica en un rango?

Cómo verificar si un rango de fechas está entre otro rango de fechas en Ruby

Cómo seleccionar valores individuales de un rango con nombre no contiguo en Excel

¿Cómo seleccionar dinámicamente un rango de celdas en Excel?

Cómo seleccionar aleatoriamente 2 celdas de un rango horizontal en Google Sheet o R

Cómo seleccionar un registro entre un rango de tiempo determinado y una categoría de artículo

Cómo seleccionar valores aleatorios de un rango determinado

¿Cómo seleccionar un rango después de filtrar?

Seleccionar registros virtualmente entre un rango de datos

Seleccionar datos entre un rango de fecha / hora

¿Cómo puedo seleccionar datos donde el mínimo de varias columnas está entre un rango usando Laravel Query Builder?

¿Cómo puedo seleccionar datos donde el mínimo de varias columnas está entre un rango usando Laravel Query Builder?

Cómo seleccionar dentro de un rango de tiempo y no dentro de un rango de tiempo

seleccionar un rango dentro de un rango

Cómo obtener fechas entre un rango de fechas dado un día en SQL Server

Reemplazo de un rango entre dos iteradores en C ++

PostgreSQL: ¿Cómo seleccionar el último saldo de cada cuenta cada día en un rango de fechas determinado?

Cómo seleccionar valores flotantes de 1 punto decimal en un rango de valores flotantes con 2 puntos decimales