PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...Mydbops
PostgreSQL 15 was released on October 13. This presentation on the major features and improvements in PostgreSQL 15, and how they can help for better performance and brings more reliability.
In 40 minutes the audience will learn a variety of ways to make postgresql database suddenly go out of memory on a box with half a terabyte of RAM.
Developer's and DBA's best practices for preventing this will also be discussed, as well as a bit of Postgres and Linux memory management internals.
PostgreSQL 15 and its Major Features -(Aakash M - Mydbops) - Mydbops Opensour...Mydbops
PostgreSQL 15 was released on October 13. This presentation on the major features and improvements in PostgreSQL 15, and how they can help for better performance and brings more reliability.
In 40 minutes the audience will learn a variety of ways to make postgresql database suddenly go out of memory on a box with half a terabyte of RAM.
Developer's and DBA's best practices for preventing this will also be discussed, as well as a bit of Postgres and Linux memory management internals.
Pg_upgrade allows data to be transferred between major Postgres versions without a costly dump/restore. This occurs by transferring the user data and version-dependent data separately. This presentation explains the internal workings of pg_upgrade and includes a pg_upgrade demonstration.
To listen to the recording please visit www.EnterpriseDB.com > Resources > Webcasts > On-demand webcasts
For more information about Postgres Plus Advanced Server you can email sales@enterprisedb.com
This ppt was used by Devrim at pgDay Asia 2017. He talked about some important facts about WAL - Transaction Logs or xlogs in PostgreSQL. Some of these can really come handy on a bad day
PostgreSQL Replication High Availability MethodsMydbops
This slides illustrates the need for replication in PostgreSQL, why do you need a replication DB topology, terminologies, replication nodes and many more.
The paperback version is available on lulu.com there http://goo.gl/fraa8o
This is the first volume of the postgresql database administration book. The book covers the steps for installing, configuring and administering a PostgreSQL 9.3 on Linux debian. The book covers the logical and physical aspect of PostgreSQL. Two chapters are dedicated to the backup/restore topic.
This presentation covers all aspects of PostgreSQL administration, including installation, security, file structure, configuration, reporting, backup, daily maintenance, monitoring activity, disk space computations, and disaster recovery. It shows how to control host connectivity, configure the server, find the query being run by each session, and find the disk space used by each database.
This one is about advanced indexing in PostgreSQL. It guides you through basic concepts as well as through advanced techniques to speed up the database.
All important PostgreSQL Index types explained: btree, gin, gist, sp-gist and hashes.
Regular expression indexes and LIKE queries are also covered.
This talk explores PostgreSQL 15 enhancements (along with some history) and looks at how they improve developer experience (MERGE and SQL/JSON), optimize support for backups and compression, logical replication improvements, enhanced security and performance, and more.
Spencer Christensen
There are many aspects to managing an RDBMS. Some of these are handled by an experienced DBA, but there are a good many things that any sys admin should be able to take care of if they know what to look for.
This presentation will cover basics of managing Postgres, including creating database clusters, overview of configuration, and logging. We will also look at tools to help monitor Postgres and keep an eye on what is going on. Some of the tools we will review are:
* pgtop
* pg_top
* pgfouine
* check_postgres.pl.
Check_postgres.pl is a great tool that can plug into your Nagios or Cacti monitoring systems, giving you even better visibility into your databases.
Pg_upgrade allows data to be transferred between major Postgres versions without a costly dump/restore. This occurs by transferring the user data and version-dependent data separately. This presentation explains the internal workings of pg_upgrade and includes a pg_upgrade demonstration.
To listen to the recording please visit www.EnterpriseDB.com > Resources > Webcasts > On-demand webcasts
For more information about Postgres Plus Advanced Server you can email sales@enterprisedb.com
This ppt was used by Devrim at pgDay Asia 2017. He talked about some important facts about WAL - Transaction Logs or xlogs in PostgreSQL. Some of these can really come handy on a bad day
PostgreSQL Replication High Availability MethodsMydbops
This slides illustrates the need for replication in PostgreSQL, why do you need a replication DB topology, terminologies, replication nodes and many more.
The paperback version is available on lulu.com there http://goo.gl/fraa8o
This is the first volume of the postgresql database administration book. The book covers the steps for installing, configuring and administering a PostgreSQL 9.3 on Linux debian. The book covers the logical and physical aspect of PostgreSQL. Two chapters are dedicated to the backup/restore topic.
This presentation covers all aspects of PostgreSQL administration, including installation, security, file structure, configuration, reporting, backup, daily maintenance, monitoring activity, disk space computations, and disaster recovery. It shows how to control host connectivity, configure the server, find the query being run by each session, and find the disk space used by each database.
This one is about advanced indexing in PostgreSQL. It guides you through basic concepts as well as through advanced techniques to speed up the database.
All important PostgreSQL Index types explained: btree, gin, gist, sp-gist and hashes.
Regular expression indexes and LIKE queries are also covered.
This talk explores PostgreSQL 15 enhancements (along with some history) and looks at how they improve developer experience (MERGE and SQL/JSON), optimize support for backups and compression, logical replication improvements, enhanced security and performance, and more.
Spencer Christensen
There are many aspects to managing an RDBMS. Some of these are handled by an experienced DBA, but there are a good many things that any sys admin should be able to take care of if they know what to look for.
This presentation will cover basics of managing Postgres, including creating database clusters, overview of configuration, and logging. We will also look at tools to help monitor Postgres and keep an eye on what is going on. Some of the tools we will review are:
* pgtop
* pg_top
* pgfouine
* check_postgres.pl.
Check_postgres.pl is a great tool that can plug into your Nagios or Cacti monitoring systems, giving you even better visibility into your databases.
New Features
● Developer and SQL Features
● DBA and Administration
● Replication
● Performance
By Amit Kapila at India PostgreSQL UserGroup Meetup, Bangalore at InMobi.
http://technology.inmobi.com/events/india-postgresql-usergroup-meetup-bangalore
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New FeaturesAmazon Web Services
Learn the specifics of Amazon RDS for PostgreSQL’s capabilities and extensions that make it powerful. This session begins with a brief overview of the RDS PostgreSQL service, how it provides High Availability & Durability and will then deep dive into the new features that we have released since re:Invent 2014, including major version upgrade and newly added PostgreSQL extensions to RDS PostgreSQL. During the session, we will also discuss lessons learned running a large fleet of PostgreSQL instances, including specific recommendations. In addition we will present benchmarking results looking at differences between the 9.3, 9.4 and 9.5 releases.
MySQL® 5.7 is a great release which has a lot to offer, especially in the development and replication areas. It provides a lot of new optimizer features for developers to take advantage of, a much more powerful GIS function and high performance JSON data type, allowing for a more powerful store for semi-structured data. It also features dramatically improved Performance Schema, Parallel and Multi-Source replication, allowing you to scale much further than ever before, just to give you a taste. In this webinar, we will provide an overview of the most important MySQL 5.7 features.
This webinar will be part of a 3-part series which will include MySQL 5.7 for Developers and MySQL 5.7 for DBAs.
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsZohar Elkayam
Oracle Week 2017 slides.
Agenda:
Basics: How and What To Tune?
Using the Automatic Workload Repository (AWR)
Using AWR-Based Tools: ASH, ADDM
Real-Time Database Operation Monitoring (12c)
Identifying Problem SQL Statements
Using SQL Performance Analyzer
Tuning Memory (SGA and PGA)
Parallel Execution and Compression
Oracle Database 12c Performance New Features
Efficient MySQL Indexing and what's new in MySQL ExplainMydbops
Efficient MySQL Indexing & What's New in MySQL Explain - Mydbops MyWebinar Edition 32
This session will delve into:
• Strategic indexing techniques: Learn how to optimize your MySQL database by implementing effective indexing strategies, including when to avoid fulltext indexes to prevent wasted resources.
• Demystifying the new MySQL Explain: We'll explore the latest enhancements to the MySQL Explain plan's JSON output format. Discover how to store the output in a variable for further analysis – a valuable addition introduced in MySQL 8.3. You'll also learn about the explain_json_format_version variable, which empowers you to choose between different JSON output versions for greater flexibility.
• Live Chat Engagement: We encourage you to actively participate throughout the webinar! Use the chat functionality to ask questions and share your experiences with indexing and Explain.
This webinar is perfect for:
• Database administrators (DBAs)
• Developers
• Anyone seeking to optimize MySQL performance and streamline database queries
Mydbops Managed Services specializes in taking the pain out of database management while optimizing performance. Since 2015, we have been providing top-notch support and assistance for the top three open-source databases: MySQL, MongoDB, and PostgreSQL.
Our team offers a wide range of services, including assistance, support, consulting, 24/7 operations, and expertise in all relevant technologies. We help organizations improve their database's performance, scalability, efficiency, and availability.
Contact us: info@mydbops.com
Visit: https://www.mydbops.com/
Scale your database traffic with Read & Write split using MySQL RouterMydbops
Scale your database traffic with Read & Write split using MySQL Router
This webinar recording dives into the world of MySQL Router and its capabilities for effectively managing high database traffic loads.
You'll learn:
• The challenges of scaling database traffic
• How MySQL Router facilitates read/write splitting
• The benefits of implementing read/write splitting
• Step-by-step demonstrations for configuring MySQL Router for:
1. Static read/write routing for standalone servers
2. Dynamic read/write split for InnoDB Cluster & Replica Set
• A comparison of popular load balancers (MySQL Router, ProxySQL, Maxscale)
Mydbops is a trusted database management and consultancy provider, helping businesses achieve optimal database performance and scalability.
Connect with Mydbops!
Website: https://www.mydbops.com/
Email: info@mydbops.com
PostgreSQL Schema Changes with pg-osc - Mydbops @ PGConf India 2024Mydbops
Title: PostgreSQL Schema Changes with Minimal Downtime using pg_osc
Speaker: Aakash M, Mydbops
Event: PGConf India, 2024
Description:
This presentation explores pg_osc, a tool that enables efficient schema changes in PostgreSQL tables with minimal downtime and locking. It addresses the challenges of traditional ALTER statements and provides a smoother alternative.
Key points covered:
• Introduction to pg_osc and its benefits.
• Limitations of ALTER statements and how pg_osc overcomes them.
• Step-by-step explanation of the pg_osc process.
• Prominent features and considerations for using pg_osc.
• References and resources for further exploration.
Target Audience:
• Database administrators
• Developers working with PostgreSQL
• Anyone interested in optimizing schema changes
This presentation provides valuable insights for anyone seeking to streamline schema modifications in PostgreSQL while minimizing disruptions.
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...Mydbops
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applications by Bhanu Jamwal, Head of Solution Engineering, PingCAP at the Mydbops Opensource Database Meetup 14.
This presentation discusses the challenges in choosing the right database for modern applications, focusing on MySQL alternatives. It highlights the growth of new applications, the need to improve infrastructure, and the rise of cloud-native architecture.
The presentation explores alternatives to MySQL, such as MySQL forks, database clustering, and distributed SQL. It introduces TiDB as a distributed SQL database for modern applications, highlighting its features and top use cases.
Case studies of companies benefiting from TiDB are included. The presentation also outlines TiDB's product roadmap, detailing upcoming features and enhancements.
Mastering Aurora PostgreSQL Clusters for Disaster RecoveryMydbops
The presentation "Mastering Aurora PostgreSQL Clusters for Disaster Recovery" by Bhuvanesh, Co-Founder & CTO of ShellKode, at the Mydbops OpenSource Database Meetup 14 covers advanced topics in managing Aurora PostgreSQL clusters for disaster recovery purposes.
Bhuvanesh discusses key features of Aurora, such as its decoupled storage and compute layers, auto scaling capabilities, and native replication, highlighting its benefits over traditional RDS instances. He also explores Aurora Global Databases, explaining how they enable replication of data across regions for geo-span applications with low latency.
The presentation includes architecture details, such as physical and log replication, and managed failover options for ensuring high availability. Bhuvanesh shares real-world experiences and best practices for managing Aurora clusters, including handling replication lag and TLS certificate management.
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open So...Mydbops
Navigating Transactions: ACID Complexity in Modern Databases- Mydbops Open Source Database Meetup 15
Shivji explores the evolution of transactions, implementation challenges, and insights into distributed database environments. Whether you're a database enthusiast or a tech enthusiast, this presentation offers valuable insights into the world of database management.
Contents:
• Historical perspective of transactions
• Implementing transactions
• Challenges and trade-offs in ACID properties
• Distributed transactions in modern databases like Amazon Aurora, DynamoDB, and Google Spanner
Key Takeaways:
• Understanding the evolution of transactions in databases
• Insights into the challenges of implementing ACID properties
• Exploration of distributed transaction models in leading database systems
AWS RDS in MySQL 2023 Vinoth Kanna @ Mydbops OpenSource Database Meetup 15Mydbops
Discover the latest developments in the AWS RDS MySQL ecosystem with Vinoth Kanna, Founding Partner at Mydbops LLP. Explore the exciting new features and enhancements introduced in RDS MySQL in 2023, including support for Group Replication, snapshot upgrades, dedicated log volumes, and performance insights export to CloudWatch. Gain valuable insights into the introduction of new instance types and version releases throughout the year. Stay ahead of the curve by learning about the end-of-life dates for MySQL RDS 5.7 and extended support pricing considerations. Don't miss out on this informative session to deepen your understanding of AWS RDS MySQL and its evolving capabilities.
Data-at-scale-with-TIDB Mydbops Co-Founder Kabilesh PR at LSPE EventMydbops
Explore the world of TiDB with Kabilesh PR, Co-Founder of Mydbops, as he unveils the potential of this open-source distributed SQL database. Dive into the architecture, scalability solutions, and production readiness of TiDB, and discover how it addresses MySQL scalability bottlenecks through sharding. Gain insights into its stateless SQL interface, transactional storage with TiKV, and analytical capabilities with TiFlash. Learn about TiDB's native sharding features, use cases across various industries, and its readiness for production environments. Delve into its limitations and discover how TiDB can transform your data management landscape.
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...Mydbops
Discover how Mydbops achieved an impressive 80% cost savings and ensured uninterrupted availability through a transformative MySQL database case study. Join Vinoth Kanna RS, Co-Founder of Mydbops, as he shares insights into optimizing infrastructure, enhancing observability, and navigating critical technology decisions. Learn from real-world challenges, innovative solutions, and valuable takeaways for your own database management endeavors.
Insightful session at Mydbops Opensource Database Meetup 14 in Bangalore as our Chief Technology Officer, Manosh Malai, delves deep into the world of MongoDB optimization. In this engaging presentation, Manosh explores the two primary sharding strategies - Vertical and Horizontal, providing valuable insights and real-world use cases. Gain a comprehensive understanding of the fundamentals of MongoDB sharding, including the pros, cons, and practical applications of both Vertical and Horizontal strategies. Explore real-world case studies and performance benchmarks to optimize your MongoDB deployments.
Mastering MongoDB Atlas: Essentials of Diagnostics and Debugging in the Cloud...Mydbops
Diving deep into the essentials of MongoDB Atlas diagnostics and debugging, helps you ensure optimal performance for your cloud-based databases. Join us as we explore key strategies and best practices for effective database management in the cloud environment. Get ready to elevate your MongoDB Atlas experience and unlock the full potential of your cloud databases.
Data Organisation: Table Partitioning in PostgreSQLMydbops
Mohammad Zaid Patel from Mydbops, embarked on a journey through PostgreSQL table partitioning.
✅ Why Data Organization?
Understand the importance and benefits of organized data in databases.
✅ Advantages of Organizing Your Data:
Better retrieval, improved performance, data integrity, and efficient storage.
✅ Data Organization Techniques:
Index creation, data archival, schemas, functional naming, and relationships.
✅ Table Partitioning in PostgreSQL:
Dive into the design technique of dividing large tables for efficient data management.
✅ Types of Table Partitioning:
Range, List, and Hash methods for unique data organization.
✅ Partitioning Techniques in PostgreSQL:
Manual and using pg_partman extension for streamlined partition creation.
✅ Limitations of Table Partitioning:
Considerations and challenges associated with this technique.
✅ Best Practices for Partitioned Table Maintenance:
Tips on choosing the right partition key, understanding query patterns, and more.
#mydbops #postgresql #mywebinar #webinar #data #database #partitioning #dataorganization #queryperformance #indexing #dataarchival #scalability #dataanalysis #pg_partman #databaseperformance #maintenance #dbms #dba #opensource #highavailability
Navigating MongoDB's Queryable Encryption for Ultimate Security - MydbopsMydbops
Explore MongoDB's Queryable Encryption in this in-depth webinar presentation. Learn about CSFLE, Queryable Encryption, and their mechanisms. Dive into DEKs, Key Vault Collections, Cryptographic Tokens, and more. Discover how MongoDB ensures robust security and flexibility in data encryption.
Explore TiDB's architecture, high availability features, and its ability to handle both transactional and analytical workloads.
Discover the role of the Raft consensus algorithm in ensuring data replication and fault tolerance within the system. Learn about practical use cases in SAAS applications, IoT data management, e-commerce, logistics, gaming, fintech, and more.
Get to know the limitations and advantages of TiDB and how it can revolutionize your data management strategy.
Join us on this knowledge-packed journey!
Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0...Mydbops
Mastering Database Migration_ Native replication (8.0) to InnoDB Cluster (8.0) with Cloning Best Practices
Explore the slides from our recent webinar on 'Mastering Database Migration: MySQL Replication to InnoDB Cluster Using Cloning.' Dive into the world of database migration, InnoDB Cluster, and the power of cloning. Discover best practices and insights shared by experts in the field. Stay updated with the latest trends in database management
Watch the webinar recording https://youtu.be/sc9TYXKAQWw
Visit our Mydbops blog https://www.mydbops.com/blog/ for further insights.
Enhancing Security of MySQL Connections using SSL certificatesMydbops
Enhancing Security of MySQL Connections using SSL certificates
Mydbops MyWebinar Edition 26
In this informative presentation by Mydbops, explore the world of database security as we delve into the steps to fortify your MySQL connections using SSL certificates. Learn about the working of SSL, the benefits of SSL/TLS encryption, the types of certificates available, and the evolution of SSL/TLS in MySQL. Discover why securing your remote connections and data confidentiality is crucial. Plus, find out how to enable SSL connections in MySQL 8.0. Don't miss this opportunity to bolster your MySQL security knowledge.
Watch the webinar recording https://youtu.be/aMSUtQVdFks
Visit our Mydbops blog https://www.mydbops.com/blog/ for further insights.
Exploring the Fundamentals of YugabyteDB - Mydbops Mydbops
Exploring the Fundamentals of YugabyteDB - Mydbops MyWebinar Edition 25
Join us for an enlightening journey into the world of YugabyteDB, a distributed SQL database revolutionizing data management. In this webinar presentation, we delve into the challenges faced by traditional databases, explore the architecture and unique features of YugabyteDB, and showcase its seamless scalability and fault tolerance.
Watch the full recording: https://youtu.be/QtvK-apLBwQ
Visit Mydbops Blogs: https://www.mydbops.com/blog/
Time series in MongoDB - Mydbops Mywebinar Edition 24. - Explore the fascinating world of time series data management in MongoDB with our insightful webinar presentation. Join us as we dive into the intricacies of leveraging MongoDB for time series use cases, discussing best practices, performance optimization techniques, and real-world examples. Discover how MongoDB can empower your applications to efficiently handle time-based data and unlock valuable insights. Don't miss out on this opportunity to enhance your knowledge and stay ahead in the evolving field of data management. Dive into our speaker deck presentation now!
Watch the webinar recording here: https://youtu.be/rwjHRLGZ7pg
Mydbops Blogs: https://www.mydbops.com/blog/
TiDB in a Nutshell - Power of Open-Source Distributed SQL Database - MydbopsMydbops
TiDB in a Nutshell - Open-Source Distributed SQL Database
Immerse yourself in the world of TiDB Architecture with our captivating presentation. Dive deep into the intricacies of TiDB, the distributed SQL database that has redefined data management. Join us as we unravel the architectural brilliance behind TiDB, exploring its key components, data flow, and design principles. Uncover the secrets to exceptional performance, elastic scalability, and rock-solid data consistency. Prepare to be enlightened by the groundbreaking TiDB Architecture that is revolutionizing the industry.
Watch the full webinar here https://youtu.be/aMSUtQVdFks for webinar recording
Mydbops Blogs: https://www.mydbops.com/blog/
High availability is critical for PostgreSQL database systems, especially for organizations that depend on their databases to support their operations. In this presentation, we will explore the different options available for achieving high availability in PostgreSQL.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
This slide is special for master students (MIBS & MIFB) in UUM. Also useful for readers who are interested in the topic of contemporary Islamic banking.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
Executive Directors Chat Leveraging AI for Diversity, Equity, and InclusionTechSoup
Let’s explore the intersection of technology and equity in the final session of our DEI series. Discover how AI tools, like ChatGPT, can be used to support and enhance your nonprofit's DEI initiatives. Participants will gain insights into practical AI applications and get tips for leveraging technology to advance their DEI goals.
Normal Labour/ Stages of Labour/ Mechanism of LabourWasim Ak
Normal labor is also termed spontaneous labor, defined as the natural physiological process through which the fetus, placenta, and membranes are expelled from the uterus through the birth canal at term (37 to 42 weeks
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
3. Services on top open source databases
Founded in 2016
70 Members team
Assisted over 500+ Customers
AWS Partner and a PCI Certified Organisation
About Mydbops
7. Overview
• Released on September 30, 2021
• With a lot of new features and bug fixed
• Every Quarter - Minor Releases
• Every Third Quarter - Major Release
9. PostgreSQL 14 Features
Server Side Enhancements
01
Improvements to Query Parallelism
02
Security Enhancements
03
Features for Application Developers
04
22. Killed Index Tuples
CREATE UNLOGGED TABLE test (
id integer PRIMARY KEY,
val text NOT NULL
) WITH (autovacuum_enabled = off);
INSERT INTO test SELECT i, 'text number ' || i FROM
generate_series(1, 1000000) AS i;
DELETE FROM test WHERE id BETWEEN 501 AND 799500;
Analyze test;
23. Killed Index Tuples
test=# EXPLAIN (ANALYZE, BUFFERS, COSTS OFF, TIMING OFF)
SELECT * FROM test WHERE id BETWEEN 1 AND 800000;
QUERY PLAN
----------------------------------------------------------
-----
Index Scan using test_pkey on test (actual rows=1000
loops=1)
Index Cond: ((id >= 1) AND (id <= 800000))
Buffers: shared hit=7284
Planning:
Buffers: shared hit=25
Planning Time: 0.204 ms
Execution Time: 95.223 ms
(7 rows)
24. Killed Index Tuples
test=# EXPLAIN (ANALYZE, BUFFERS, COSTS OFF, TIMING OFF)
SELECT * FROM test WHERE id BETWEEN 1 AND 800000;
QUERY PLAN
----------------------------------------------------------
-----
Index Scan using test_pkey on test (actual rows=1000
loops=1)
Index Cond: ((id >= 1) AND (id <= 800000))
Buffers: shared hit=2196
Planning:
Buffers: shared hit=8
Planning Time: 0.196 ms
Execution Time: 3.815 ms
(7 rows)
25. Bottom-Up Index Tuple Deletion
• Introduced in Version 14
• Delete Index Entries pointed to dead tuples
• Performing the operation of the VACUUM
34. Streaming in-progress Transactions - PostgreSQL 14
INSERT INTO test SELECT i, REPEAT('x', 10) FROM
generate_series(1,5000000) AS i;
Time Taken for Commit : 6.7 Secs
35. Streaming in-progress Transactions - PostgreSQL 14
ALTER SUBSCRIPTION test_sub SET(STREAMING = ON)
INSERT INTO test SELECT i, REPEAT('x', 10) FROM
generate_series(1,5000000) AS i;
Time taken for COMMIT: 3.5 secs
37. TOAST
• Mechanism used to avoid exceeding the size of data block
• Try Compress
• Wider field values into a smaller pieces
• Default, this is 2KB
• Every table will have its own toast table
38. New Compression Configuration
• pglz - in built compression
• lz4 - New compression method added
• New Configuration Variable - default_toast_compression
• --with-lz4
40. Idle_session_timeout
postgres=# select name,setting,unit,user,pending_restart from
pg_settings where name = 'idle_session_timeout' gx
-[ RECORD 1 ]---+---------------------
name | idle_session_timeout
setting | 0
unit | ms
context | user
pending_restart | f
• New variable
• Almost the same purpose of idle_in_transaction_session_timeout
41. idle_in_transaction_session_timeout
postgres=# select name,setting,unit,context,pending_restart from
pg_settings where name = 'idle_in_transaction_session_timeout' gx
-[ RECORD 1 ]---+------------------------------------
name | idle_in_transaction_session_timeout
setting | 0
unit | ms
context | user
pending_restart | f
• Available since PostgreSQL 9.6
• Maximum allowed idle time between queries, when in transaction
43. idle_in_transaction_session_timeout
postgres=# start transaction;
START TRANSACTION
postgres=*# select name,setting from pg_settings where name =
'idle_in_transaction_session_timeout' gx
-[ RECORD 1 ]--------------------------------
name | idle_in_transaction_session_timeout
setting | 2000
postgres=*# select name,setting from pg_settings where name =
'idle_in_transaction_session_timeout' gx
FATAL: terminating connection due to idle-in-transaction timeout
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset:
Succeeded.
postgres=#
44. Idle_session_timeout
postgres=# set Idle_session_timeout = 5000;
SET
postgres=# select name,setting from pg_settings where name =
'idle_in_transaction_session_timeout' gx
-[ RECORD 1 ]--------------------------------
name | idle_in_transaction_session_timeout
setting | 0
postgres=# select name,setting from pg_settings where name =
'idle_in_transaction_session_timeout' gx
FATAL: terminating connection due to idle-session timeout
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset:
Succeeded.
• Maximum idle time between the queries, when not in a transaction
45. Idle_session_timeout
• Helps to handle idle connections
• Apply only for the upcoming connections
• Should have higher value than application timeout
49. Materialized View
(postgres13)=> CREATE TABLE table_test (grp int, data numeric);
CREATE TABLE
Time: 3.282 ms
(postgres13)=>
(postgres13)=> INSERT INTO table_test SELECT 100, random() FROM
generate_series(1, 5000000);
INSERT 0 5000000
Time: 8064.350 ms (00:08.064)
(postgres13)=>
(postgres13)=> INSERT INTO table_test SELECT 200, random() FROM
generate_series(1, 5000000);
INSERT 0 5000000
Time: 9250.536 ms (00:09.251)
(postgres13)=>
• Loaded data in PostgreSQL 13
50. Materialized View
(postgres14)=> CREATE TABLE table_test (grp int, data numeric);
CREATE TABLE
Time: 13.577 ms
(postgres14)=>
(postgres14)=> INSERT INTO table_test SELECT 100, random() FROM
generate_series(1, 5000000);
INSERT 0 5000000
Time: 7204.919 ms (00:07.205)
(postgres14)=>
(postgres14)=> INSERT INTO table_test SELECT 200, random() FROM
generate_series(1, 5000000);
INSERT 0 5000000
Time: 8618.068 ms (00:08.618)
• Loaded data in PostgreSQL 14
51. Materialized View
(postgres13)=> SELECT grp, avg(data), count(*) FROM table_test
GROUP BY 1;
grp | avg | count
-----+-------------------------+---------
100 | 0.499979689549607876793 | 5000000
200 | 0.500123546167930387393 | 5000000
(2 rows)
Time: 960.802 ms
(postgres14)=> SELECT grp, avg(data), count(*) FROM table_test
GROUP BY 1;
grp | avg | count
-----+-------------------------+---------
100 | 0.500173019196875804072 | 5000000
200 | 0.500065682335289928739 | 5000000
(2 rows)
Time: 965.867 ms
• Executing a query on both version
52. Materialized View
(postgres13)=> CREATE MATERIALIZED VIEW test_view AS SELECT grp,
avg(data), count(*) FROM table_test GROUP BY 1;
SELECT 2
Time: 983.138 ms
(postgres14)=> CREATE MATERIALIZED VIEW test_view AS SELECT grp,
avg(data), count(*) FROM table_test GROUP BY 1;
SELECT 2
Time: 978.225 ms
(postgres14)=>
• Creating materialized view for the static table
54. Refresh Materialized View
(postgres13)=> refresh materialized view test_view;
REFRESH MATERIALIZED VIEW
Time: 2027.911 ms (00:02.028)
(postgres13)=>
(postgres14)=> refresh materialized view test_view;
REFRESH MATERIALIZED VIEW
Time: 961.503 ms
• Refreshing the materialized view to get the updated result
55. Refresh Materialized View
(postgres14)=> explain SELECT grp, avg(data), count(*) FROM
table_test GROUP BY 1;
QUERY PLAN
------------------------------------------------------------------
------------------------------------
Finalize GroupAggregate (cost=127997.34..127997.87 rows=2
width=44)
Group Key: grp
-> Gather Merge (cost=127997.34..127997.81 rows=4 width=44)
Workers Planned: 2
-> Sort (cost=126997.32..126997.32 rows=2 width=44)
Sort Key: grp
...... on table_test (cost=0.00..95747.02
rows=4166702 width=15)
(9 rows)
Time: 0.438 ms
• Explain plan with parallel workers
56. Refresh Materialized View
• Other than refresh, remaining use parallelism
• For version < 14, it is better to recreate it than refresh
• During refresh, it will lock the content
• Concurrent option, but PK is mandatory
60. Default Authentication Method - scram-sha-256
authentication method 10 not supported
• Previously MD5 hashing method
• Easy to reconstruct
• Expensive Hash Function
• Introduced in V10, now made it as default
• Client needs to support it
62. Predefined Roles - pg_read_all_data or pg_write_all_data
• Be a superuser
• Provide access to the complete database
63. Predefined Roles - pg_read_all_data
• Read all data(Tables, views and sequences)
• Select access on objects and usage access on schemas
64. Predefined Roles - pg_write_all_data
• Write all data(Tables, views and sequences)
• Insert, Update, Delete access on objects and usage access on schemas
65. Predefined Roles - pg_read_all_data or pg_write_all_data
(postgres14)=> create user testing;
CREATE ROLE
Time: 5.468 ms
(postgres14)=> set role to 'testing';
SET
Time: 0.392 ms
(postgres14)=> SELECT grp, avg(data), count(*) FROM table_test
GROUP BY 1;
ERROR: permission denied for table table_test
Time: 2.010 ms
(postgres14)=>
66. Predefined Roles - pg_read_all_data or pg_write_all_data
(postgres14)=> reset role;
RESET
Time: 0.189 ms
(postgres14)=> grant pg_read_all_data to testing;
GRANT ROLE
Time: 4.202 ms
(postgres14)=>
(postgres14)=> set role to 'testing';
SET
Time: 0.148 ms
(postgres14)=> SELECT grp, avg(data), count(*) FROM table_test
GROUP BY 1;
grp | avg | count
-----+-------------------------+---------
100 | 0.500173019196875804072 | 5000000
200 | 0.500065682335289928739 | 5000000
(2 rows)
69. New JSON Syntax
Old Syntax:
where (jsonb_column->>'name')::varchar = 'Aakash:
DBRE(2021)';
New Syntax:
where jsonb_column['name'] = '"Aakash: DBRE(2021)"';
• Since PostgreSQL 9.2
• Had unique syntax
74. Range - Classic SQL
(postgres14)=> select id, appname from track_activity where
start_ts <= '2021-10-20 11:00'::timestamp and end_ts >= '2021-10-
20 12:00'::timestamp;
id | appname
----+----------
3 | Whatsapp
(1 row)
75. Range - Classic SQL
(postgres14)=> select id, appname from track_activity where
(start_ts <= '2021-10-20 11:00'::timestamp and end_ts >= '2021-10-
20 12:00'::timestamp) or (start_ts <= '2021-10-20
17:00'::timestamp and end_ts >= '2021-10-20 18:00'::timestamp);
id | appname
----+----------
3 | Whatsapp
(1 row)
76. Range - Using Range Data Type
create table track_activity_range (
id serial primary key,
appname varchar(100),
time_ts tsrange
);
insert into track_activity_range (appname,time_ts) values
('Whatapp', '[2021-10-20 4:00, 2021-10-20 7:00]');
insert into track_activity_range (appname,time_ts) values
('Facebook', '[2021-10-20 7:00, 2021-10-20 11:00]');
insert into track_activity_range (appname,time_ts) values
('Whatsapp', '[2021-10-20 11:00, 2021-10-20 21:00]');
insert into track_activity_range (appname,time_ts) values
('Instagram', '[2021-10-20 22:00, 2021-10-20 23:00]');
77. Range - Using Range Data Type
(postgres14)=> select id, appname from track_activity_range where
time_ts @> '2021-10-20 12:00'::timestamp;
id | appname
----+----------
3 | Whatsapp
(1 row)
78. Range - Using Range Data Type
(postgres14)=> select * from track_activity_range where id=3;
id | appname | time_ts
----+----------+-----------------------------------------------
3 | Whatsapp | ["2021-10-20 11:00:00","2021-10-20 21:00:00"]
(1 row)
(postgres14)=> update track_activity_range set time_ts = time_ts -
'[2021-10-20 11:00,2021-10-20 11:30]' where id = 3;
UPDATE 1
(postgres14)=> select * from track_activity_range where id=3;
id | appname | time_ts
----+----------+-----------------------------------------------
3 | Whatsapp | ("2021-10-20 11:30:00","2021-10-20 21:00:00"]
(1 row)
79. Range - Using Range Data Type
(postgres14)=> select * from track_activity_range where id=3;
id | appname | time_ts
----+----------+-----------------------------------------------
3 | Whatsapp | ("2021-10-20 11:30:00","2021-10-20 21:00:00"]
(1 row)
(postgres14)=> update track_activity_range set time_ts = time_ts -
'[2021-10-20 12:00,2021-10-20 12:30]' where id = 3;
ERROR: result of range difference would not be contiguous
Time: 0.594 ms
(postgres14)=>
80. Range - Using Multi Range Data Type
create table track_activity_multirange (
id serial primary key,
appname varchar(100),
time_ts tsmultirange
);
insert into track_activity_multirange (appname,time_ts) values
('Whatapp', '{[2021-10-20 4:00, 2021-10-20 7:00]}');
insert into track_activity_multirange (appname,time_ts) values
('Facebook', '{[2021-10-20 7:00, 2021-10-20 11:00]}');
insert into track_activity_multirange (appname,time_ts) values
('Whatsapp', '{[2021-10-20 11:00, 2021-10-20 21:00]}');
insert into track_activity_multirange (appname,time_ts) values
('Instagram', '{[2021-10-20 22:00, 2021-10-20 23:00]}');
81. Range - Using Multi Range Data Type
(postgres14)=> select * from track_activity_multirange;
id | appname | time_ts
----+-----------+-------------------------------------------------
1 | Whatapp | {["2021-10-20 04:00:00","2021-10-20 07:00:00"]}
2 | Facebook | {["2021-10-20 07:00:00","2021-10-20 11:00:00"]}
3 | Whatsapp | {["2021-10-20 11:00:00","2021-10-20 21:00:00"]}
4 | Instagram | {["2021-10-20 22:00:00","2021-10-20 23:00:00"]}
(4 rows)
82. Range - Using Multi Range Data Type
(postgres14)=> update track_activity_multirange set time_ts =
time_ts - '{[2021-10-20 12:00,2021-10-20 12:30]}' where id = 3;
UPDATE 1
(postgres14)=> select * from track_activity_multirange where id=3;
id | appname |
time_ts
----+----------+--------------------------------------------------
---------------------------------------------
3 | Whatsapp | {["2021-10-20 11:00:00","2021-10-20 12:00:00"),
("2021-10-20 12:30:00","2021-10-20 21:00:00"]}
(1 row)
84. Out Parameter for Stored Procedure
• Only function has been supported
• Stored Procedure since V11
• Only supports IN , INOUT parameters
• More compatible with Oracle's Implementation of procedures
93. pg_stat_statements
• Very useful extension
• Tracking execution statistics of all SQL statements
• Inexpensive
• Supports in all infra
• Load this data in grafana
• Stores the hash value
96. Enhancements in pg_stat_statements
postgres=# select * from pg_stat_statements_info;
dealloc | stats_reset
---------+-------------------------------
0 | 2021-10-18 14:28:12.693117+00
(1 row)
• System View - pg_stat_statements_info
• Shows since the query stats are available
97. Enhancements in pg_stat_statements
postgres=# select queryid,query from pg_stat_statements limit 1;
queryid | query
---------------------+---------------------------------------------
-
2403671352246453279 | select queryid,query from pg_stat_statements
(1 row)
In Error log:
2021-10-18 14:55:15 UTC [10840]: [2-1]
user=postgres,db=postgres,app=psql,client=
[local],query_id=2403671352246453279 LOG: duration: 3.580 ms
• New log prefix added - %Q
• Also store the query id in the log file as well
98. Enhancements in pg_stat_statements
postgres=# select query,rows from pg_stat_statements limit 1;
query | rows
----------------------------------------------+------
select queryid,query from pg_stat_statements | 7
(1 row)
• New column added - rows
• No of rows processed
99. Planning for Upgrade
• Logical / Physical Upgrade
• Perform dry-run if possible
• Version < 12 requires reindexing.
• Analyze needs to be performed
• Perform functional testing of application