Análisis y ejemplos de las nuevas características aparecidas en PostgreSQL 9.5 más relevantes. Conferencia en el marco de PgDayCuba en la conferencia Informática 2016. La Habana, Cuba
en bases de datos • Consultoría, Formación y Soporte en PostgreSQL • Fundadores de PostgreSQL España, el 5o PUG mayor del mundo (>500 members as of today) • Acerca de mí: CEO en 8Kdata: @ahachete http://linkd.in/1jhvzQ3 www.8kdata.com
Creamos una tabla → create table accesos_usuarios (usuarios text primary key, accesos int); Paso 2 Insertamos en la tabla → insert into accesos_usuarios values ('8kdata',1); Paso 3- Volvemos a insertar en la tabla el mismo valor → insert into accesos_usuarios values ('8kdata',1); ERROR: duplicate key value violates unique constraint "accesos_usuarios_pkey" DETAIL: Key (usuarios)=(8kdata) already exists.
(usuarios, accesos) values ('8kdata',1) on conflict (usuarios) do update set accesos = accesos_usuarios.accesos + EXCLUDED.accesos; Se incrementa el valor del acceso con el valor excluido
as a (usuarios, accesos) values ('8kdata',1),('usuario2',1) on conflict (usuarios) do update set accesos = a.accesos + EXCLUDED.accesos where a.usuarios not like '8k%'; Actualiza con condiciones
de metadatos de un rango de páginas • Índices de pequeño tamaño • Útiles en tablas grandes y ordenadas de manera natural (por ejemplo, facturas por fecha) • Búsquedas más lentas que índices B-TREE • Nuevo parámetro: pages_per_range • Bloque de 128 páginas (1 Mb)
ordenaciones en memoria • Utilización de strxfrm() para extraer caracteres en comparaciones y ordenaciones • En equipos multi-CPU y gran cantidad de memoria • Reducción de memoria consumida por Backend • Mejora concurrencia sustitución buffer compartido
bases de datos create database origen; create database destino; 2)Creamos tablas en origen create table k1 as select generate_series(1,20) as id; create table k2 as select generate_series(1,30) as id; create table k3 as select generate_series(1,40) as id;
Nos conectamos a destino create extension postgres_fdw ; create server src foreign data wrapper postgres_fdw options(dbname 'origen'); create user mapping for curso server src options (user 'curso');
con otro directorio de datos creado anteriormente desde el primero. Hace uso de los WAL y copia aquellos que son necesarios Resincronización servidor maestro después de fallo.