Ugh. What a tough decision: supporting cross-device sync via CloudKit requires all primary keys to be UUIDs. My tests showed inserts up to 60% slower and queries around 30% slower with a million rows. But not having the option for sync would suck too.