📓
BK Tricks
<- back to the bodik.tech
  • BK Tricks
  • AI\ML
    • Using PostgreSQL with pgvector extension to store and search embeddings
    • JavaScript-based tools
  • Databases
    • PostgreSQL
      • How to Use HOT Updates in PostgreSQL to Boost Your UPDATE Queries
      • Maximizing the Potential of Embeddings with PGvector: A Comprehensive Guide
    • Elasticsearch
      • The impact of Elasticsearch segments on search speed
      • How to aggregate Elasticsearch results by the timestamp on day interval?
      • Mastering Vector Search in Elasticsearch: Mapping Index for KNN
    • Prometheus
      • What is Prometheus and what is it usually used for?
      • How to create a simple Prometheus exporter?
    • Clickhouse
      • How to make a difference of two arrays in ClickHouse?
      • Materialized View that parses JSON or nested JSON from the string field of another table
      • Attach S3 as a storage engine to ClickHouse
      • Table with TTL to S3
      • Partition ClickHouse table based on unique string hash
      • Create a connection to other ClickHouse instance
  • Infrastructure
    • AWS
      • SAM
        • Schema to create a resource of DynamoDB table using SAM
        • Example of enabling streaming functionality of DynamoDB table using SAM resource
        • Schema to create Lambda function resource using SAM
        • Adding environment variables to Lambda function resource using SAM
        • Adding a scheduled timer to start Lambda function resource using SAM
        • Reading stream from DynamoDB by Lambda function declared using SAM
        • Schema to create a resource of SQS queue using SAM
      • CloudFront
        • How to make redirect using Lambda@Edge?
  • Programming
    • JavaScript
      • Convert hexadecimal string to an array of Uint8 values
      • How to decrypt data encoded with NaCl cryptographic algorithm using NodeJS?
      • How to add a property to JavaScript object if it is not empty or null?
  • Tools
    • Kafka
      • Useful tools
      • How to view all of the offsets for some consumer groups in Kafka using CLI?
      • How to set Kafka offsets of a consumer group to a predefined list for all partitions at once?
  • Math
    • Transform the number from one numeric range to another
  • Frontend
    • Useful resources
Powered by GitBook
On this page
  1. Databases
  2. PostgreSQL

How to Use HOT Updates in PostgreSQL to Boost Your UPDATE Queries

Nice information to boost your PostgreSQL updates.

HOT updates are a feature of PostgreSQL that can improve the performance and efficiency of UPDATE queries. HOT stands for Heap Only Tuple, which means that the new version of a row is stored in the same page as the old one, and no indexed columns are changed. This way, PostgreSQL can avoid updating the indexes and creating dead tuples that need to be vacuumed later.

HOT updates can only happen if there is enough free space in the page to store the new version of the row. This can be controlled by setting a fillfactor lower than 100 for the table or index. The fillfactor determines how much space is reserved for future updates. For example, a fillfactor of 80 means that only 80% of the page is filled initially, leaving 20% for HOT updates.

HOT updates can also only happen if no indexed columns are modified by the UPDATE query. If any indexed column is changed, PostgreSQL has to update all the indexes that reference that column, and create a new tuple in a different page. This causes write amplification and fragmentation, which can degrade the performance and storage efficiency of PostgreSQL.

This query is for finding the number of regular and HOT updates for a table named ‘table’ in the ‘public’ schema:

SELECT n_tup_upd, n_tup_hot_upd
FROM pg_stat_user_tables
WHERE schemaname = 'public'
  AND relname = 'jobs';
PreviousPostgreSQLNextMaximizing the Potential of Embeddings with PGvector: A Comprehensive Guide

Last updated 1 year ago