Pinned
Markus Winand
Markus Winand
@winand.at
SQL Renaissance Ambassador. Author, Trainer, Coach. PhD in Common Sense. Creator of http://use-the-index-luke.com and http://modern-sql.com.
1.3K followers67 following306 posts
"PingCAP's engineers paste customers' production credentials into Jira tickets." Security problems are often rooted in an internal "non-production" system. Apparently 10.6 TB of data was copied from various systems at PingCAP (TiDB). fulcrumsec.vg/pingcap/
rewritey.com/ "Rewrite multi-join SQL into faster plans. Analyze query shape and workload overlap to find reusable intermediates." Maybe worth a try if you have aggregating queries with many joins.
€10 for a frontier AI subscription are gone in one workday. €10 for my book SQL Performance Explained has a lasting impact on you*. sql-performance-explained.com Learning fundamentals that don't change always has a lasting effect. * you also need to read it, which takes about 1 day ;)
Markus Winand reposted
Venn diagrams for teaching relational joins are plain wrong. I explain why in this new article. thegresqlpost.org/articles/joi...
Markus Winand reposted
Oracle Just Halved Its Always Free ARM Limits https://www.cnelecar.com/blog/oracle-always-free-arm-limits-cut-2026/ https://news.ycombinator.com/item?id=49183750
Markus Winand reposted
There's much more to defining primary keys than using surrogate id columns @winand.at introduces Structured Primary Keys These are based on foreign keys plus the columns needed for uniqueness Using these can give big performance and functional benefits
New post: Structured Primary Keys For consistency and performance. modern-sql.com/blog/2026-06...
Markus Winand reposted
The perfect guide to the oracle optimizer blogs.oracle.com/optimizer/or... Kudos @vldbb.bsky.social
The SQL/JSON Path item-method .keyvalue() has an interesting history in the Oracle Database. modern-sql.com/caniuse/keyv... In 23.26.2 it works, but not in ?( filter ) context.
Markus Winand reposted
MariaDB 12.3.2 was released last week. It is the first "stable" version of the long-term supported (LTS = 3 years) 12.3 branch. An SQL dialect enhancement is the IS JSON predicate. Also: a bug I reported is fixed (MDEV-38835). All charts on modern-sql.com are updated. #SQL #JSON #MariaDB
MariaDB 12.3.2 was released last week. It is the first "stable" version of the long-term supported (LTS = 3 years) 12.3 branch. An SQL dialect enhancement is the IS JSON predicate. Also: a bug I reported is fixed (MDEV-38835). All charts on modern-sql.com are updated. #SQL #JSON #MariaDB
ORDER BY Has Come a Long Way modern-sql.com/blog/2026-05... The ORDER BY clause is surely one of the best-known SQL clauses. Yet there are a number of common misunderstandings that are worth clearing up. For that, the article walks you through the evolution of the ORDER BY clause the SQL standard.
Markus Winand reposted
Markus Winand reposted
Should these functions return the same value? SELECT ROW_NUMBER() OVER (ORDER BY x), ROW_NUMBER() OVER (ORDER BY x) FROM ... What about when many rows have the same value for X? According to the #SQL standard: yes @winand.at investigates
Order-equivalent OVER clauses modern-sql.com/blog/2026-03... About an important but rarely appreciated aspect when using multiple OVER clauses in a single query.
Markus Winand reposted
Markus Winand reposted
Reading about LLM's accuracy to produce SQL queries I ran into llm-benchmark.tinybird.live. According to their study, the average accuracy/exactness is ~50%. So half of the time models returns a query than runs but returns a wrong answer. How are people using this in production?
Markus Winand reposted
Think you know about #SQL performance? Take this 3-minute indexing quiz by @winand.at A simple test that 60% fail! buff.ly/5C4XZ7N Did you pass? Let us know how you did!
Markus Winand reposted
Markus Winand reposted
Infinite Recursion Guards modern-sql.com/caniuse/with... With recursive is the only SQL construct that is not guaranteed to terminate, eventually. As the DBMS is typically a very crucial system, infinite loops must be prevented at all times. See how various SQL systems help you.