Localization on PostgreSQL
summary
Compares 10 collations (libc and ICU) on Hyperscale (Citus) using 165 Unicode characters across English, Japanese, and Chinese, measuring planner cost with EXPLAIN and real times with ANALYZE (10 runs, medians). Finds ICU collations give more natural sort order and typically better performance than libc; ja_JP_x_icu fastest in several queries. Notes Azure Hyperscale cannot set database-level collation so collation must be set per table, and setting ICU on tables beats using COLLATE clauses on libc defaults.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 1:51Introduction to localization in Postgres
- 3:24Character sets: supported sets, defaults, & setting
- 5:42Locale basics in Postgres
- 7:09Collation basics in Postgres
- 10:30Sorting experiments on Hyperscale (Citus)
- 23:25Cost comparisons
- 25:46Conclusions
- 27:46Q&A with Keisuke & Aaron
related talks
52mCollations from A to Z
55mSorting Out glibc Collation Challenges
46mCollation Challenges: Sorting it Out
47mSmooth Sailing...
20mStoring strings in SQL Server and Azure SQL DB
45mThe wonderful world of collations, encodings and text storage
48mWho's the Fairest of Them All? Postgres Interface Performance
24mCitus from the Customer eyes
