Bienvenidos sean a este post, hoy veremos la extension que nos permite seleccionar una particion.
Con el tema visto en el post anterior el optimizador determina cuales son las particiones que deben ser accedidas para ejecutar una instruccion, pero como mencionamos en este post a partir de mariadb 10.0 tambien poseemos una extension para poder determinar cual es la particion que deseamos utilizar para nuestro query, esta opcion podemos usarla despues de especificar el nombre de la tabla en cualquier de las siguientes instrucciones:
- SELECT, incluyendo al JOIN y UNION
- CREATE TABLE … SELECT
- INSERT … SELECT
- INSERT
- UPDATE
- DELETE
- REPLACE
- LOAD DATA INFILE
- LOAD XML INFILE
Con esto podemos decir que su sintaxis general es la siguiente:
<nombre_tabla> PARTITION (<lista_particion>)
Siendo lista_particion una lista con todas las particiones que queremos acceder de dicha tabla, al igual que en todos los casos los nombre deben ser separados con comas, tambien podemos acceder a subparticiones pero para poder usarlas debemos usar el nombre de la particion unido por un punto al nombre de la subparticion:
articulos PARTITION (p0.sp1)
Para entenderlo mejor veamos un query de ejemplo para verlo en accion:
MariaDB [base1]> SELECT * FROM articulos PARTITION (p0, p1s3);
Pero si no existe una particion o subparticion nos devolvera un mensaje de error:
ERROR 1735 (HY000): Unknown partition 'p1s3' in table 'articulos'
En general la notificacion sera primero la particion que no se encontro y la tabla en cuestion, por el contrario particiones existentes pueden ser nombradas mas de una vez en cualquier orden y las subparticiones pueden ser nombradas inclusive si su particion principal esta incluida en la lista, desde que la poda de particiones es automatica esta se implemento en mariadb incluso antes que la seleccion de particion, esto puede resultar inutil a primera vista sin embargo puede ser util en muchas otras formas, por ejemplo:
- Trabaja con todas las expresiones de particionamiento
- Trabaja con todos los tipos de particionamiento
- Nos permite especificar subparticiones que no pueden ser «podadas» automaticamente
- Se puede usar en situaciones raras donde el optimizador no aplica una poda optima, probablemente por un bug
- Para queries complejos puede acelerar al optimizador
- Las instrucciones que elimina o modifican datos, las cuales pueden causar perdida de datos si l condicion en el WHERE no es correcta, una opcion adicional de PARTITION puede reducir los riesgos cuando daños similares ocurren
- De forma similar se puede usar para cuando debemos agregar una gran cantidad de informacion y evitar el ingreso de valores incorrectos, esta tecnica hace que grandes volcados de ingresos fallen si al menos una fila no encaja con las particiones especificadas, esta conducta no se ve afectada por el IGNORE
- Nos permite realizar un rapido query sobre una particion o subparticion y a la vez analizar la distribucion general de datos
En resumen, hoy hemos visto a la extension PARTITION, que es, para que sirve, como nos ayuda y las ventajas que nos provee, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
