# uuid

Published articles for uuid.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Waiting for PostgreSQL 20 - Add min() and max() aggregate support for uuid.

DevFeed: [Waiting for PostgreSQL 20 - Add min() and max() aggregate support for uuid.](<https://devfeed.tech/articles/waiting-for-postgresql-20-add-min-and-max-aggregate-support-for-uuid-33692.md>)

Original publisher: [Read original article](<https://www.depesz.com/2026/07/09/waiting-for-postgresql-20-add-min-and-max-aggregate-support-for-uuid/>)

Author: depesz

Published: 2026-07-09T12:41:14Z

Content type: article

Language: en

Sources: [select \* from depesz;](<https://devfeed.tech/sources/select-from-depesz.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [DateTime](<https://devfeed.tech/topics/datetime.md>)

Tags: [aggregate](<https://devfeed.tech/tags/aggregate.md>), [btree](<https://devfeed.tech/tags/btree.md>), [max](<https://devfeed.tech/tags/max.md>), [min](<https://devfeed.tech/tags/min.md>), [order](<https://devfeed.tech/tags/order.md>), [pg20](<https://devfeed.tech/tags/pg20.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sort](<https://devfeed.tech/tags/sort.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [uuid](<https://devfeed.tech/tags/uuid.md>), [uuid-extract-timestamp](<https://devfeed.tech/tags/uuid-extract-timestamp.md>), [waiting](<https://devfeed.tech/tags/waiting.md>)

### AI overview

This article discusses a PostgreSQL patch adding min() and max() aggregate support for the uuid type. It explains that uuid is totally ordered through comparison operators and a btree operator class, and demonstrates the aggregates with UUID v7 and random UUIDs.

### Source excerpt

On 1st of July 2026, Masahiko Sawada committed patch: Add min() and max() aggregate support for uuid. The uuid type already has a full set of comparison operators and a btree operator class, so it is totally ordered. min() and max() were the only common aggregates missing for it. Add the uuid_larger() and uuid_smaller() ... Continue reading "Waiting for PostgreSQL 20 - Add min() and max() aggregate support for uuid."

## How UUIDv4 Primary Keys Affect Database Insert Performance

DevFeed: [How UUIDv4 Primary Keys Affect Database Insert Performance](<https://devfeed.tech/articles/why-uuid-primary-keys-quietly-destroy-database-performance-39564.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/12-uuids-primary-keys-performance/>)

Author: hello@ankit-rana.com

Published: 2026-03-16T00:00:00Z

Content type: article

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [ordering](<https://devfeed.tech/topics/ordering.md>)

Tags: [b-tree](<https://devfeed.tech/tags/b-tree.md>), [database](<https://devfeed.tech/tags/database.md>), [database-performance](<https://devfeed.tech/tags/database-performance.md>), [fragmentation](<https://devfeed.tech/tags/fragmentation.md>), [innodb](<https://devfeed.tech/tags/innodb.md>), [latency](<https://devfeed.tech/tags/latency.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [performance](<https://devfeed.tech/tags/performance.md>), [system-design](<https://devfeed.tech/tags/system-design.md>), [uuid](<https://devfeed.tech/tags/uuid.md>)

### AI overview

This article explains how random UUIDv4 primary keys can reduce insert performance in clustered indexes. Random inserts land in the middle of B+ tree pages, causing page splits, fragmentation, additional writes, and buffer-pool churn. It recommends UUIDv7 or ULID, or an auto-increment clustered key with UUIDs in a unique secondary index.

### Source excerpt

The problem with UUIDv4 primary keys is not uniqueness, it is that random keys fight the storage engine's physical layout. In a clustered index the primary key is the table, so random inserts land mid-page, trigger page splits, leave pages half-full, and can inflate a 50 GB dataset to roughly 100 GB while wasting buffer pool on empty space. Use UUIDv7 or ULID, or keep an auto-increment clustered key with the UUID in a unique secondary index.

## Postgres Datatypes - The ones you're not using.

DevFeed: [Postgres Datatypes - The ones you're not using.](<https://devfeed.tech/articles/postgres-datatypes-the-ones-you-re-not-using-41168.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2014/05/07/Postgres-Datatypes-The-ones-youre-not-using./>)

Author: Map

Published: 2014-05-07T20:55:56Z

Content type: article

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [timezone](<https://devfeed.tech/topics/timezone.md>), [DateTime](<https://devfeed.tech/topics/datetime.md>), [Gin](<https://devfeed.tech/topics/gin.md>), [Extension](<https://devfeed.tech/topics/extension.md>)

Tags: [extension](<https://devfeed.tech/tags/extension.md>), [gin](<https://devfeed.tech/tags/gin.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [timestamptz](<https://devfeed.tech/tags/timestamptz.md>), [timezone](<https://devfeed.tech/tags/timezone.md>), [uuid](<https://devfeed.tech/tags/uuid.md>)

### AI overview

This article discusses less commonly used Postgres data types, including hstore, range types, timestamp with timezone, and UUIDs. It describes practical uses such as storing key-value data, constraining ranges, handling time zones, and supporting scalable identifiers.

### Source excerpt

Postgres has a variety of datatypes, in fact quite a few more than most other databases. Most commonly applications take advantage of the standard ones - integers, text, numeric, etc. Almost every application needs these basic types, the rarer ones may be needed less frequently. And while not needed on every application when you do need them they can be an extremely handy. So without further ado let's look at some of these rarer but awesome types. hstore Yes, I've talked about this one before, yet still not enough people are using it. Of this list of datatypes this is one that could also have benefit for most if not all applications. Hstore is a key-value store directly within Postgres. This means you can easily add new keys and values (optionally), without haveing to run a migration to setup new columns. Further you can still get great performance by using Gin and GiST indexes with them, which automatically index all keys and values for hstore. It's of note that hstore is an extension and not enabled by default. If you want the ins and outs of getting hands on with it, give the article on Postgres Guide a read. Range types If there is ever a time where you have two columns in your database with one being a from, another being a to, you probably want to be using range types. Range types are just that a set of ranges. A super common use of them is when doing anything with calendaring. The place where they really become useful is in their ability to apply constraints on those ranges. This means you can make sure you don't have overlapping time issues, and don't have to rebuild heavy application logic to accomplish it. Timestamp with Timezone Timestamps are annoying, plain and simple. If you've re-invented handling different timezones within your application you've wasted plenty of time and likely done it wrong. If you're using plain timestamps within your application further there's a good chance they dont even mean what you think they mean. Timestamps with timezone o