Modeling Ranges: PostgreSQL Range Types vs MySQL Start/End Columns
A booking platform stored start and end columns in MySQL, and its overlap queries were slow and quietly wrong at boundaries. Here is how tstzrange, GiST, and exclusion constraints fixed both, and what stays manual on MySQL.