User:Brion VIBBER/Compacting the revision table round 3

Possible alternatives
Possible more conservative alternatives vs the larger changes in User:Brion VIBBER/Compacting the revision table round 2


 * rev_actor
 * instead, fold "anon"s into the user_id space...
 * fix anything that doesn't already join to user for user_name
 * migration process creates user stubs for IPs, wipes the rev_user_text
 * when complete, drop the rev_user_text column entirely.
 * -or- keep the separation, but leave rev_user_text empty for user accounts
 * Purpose is to reduce the size of the table by keeping the field empty for many rows.
 * fix anything that doesn't already join to user for user_name to do so (Revision may lazy-load already)...
 * fix anything that looks up rev_user_text for live accounts to use rev_user...
 * No data migration needed, but can scrub out the old rev_user_text entries once the upgrades are done. Can either do that 'live' via replication, or offline during switches.
 * would this leave indexes on rev_user_text unbalanced, with ~halfish the entries with "" and the other half needing index sorting?


 * rev_comment_id
 * separate rev_comment out to comment.comment_text, linked on (rev.rev_id = comment.comment_rev)...
 * This removes the 'reuse common summaries' case, but slims rev down further by a BIGINT reference.
 * Requires inserting revision, then the comment, in one transaction...
 * Purpose of this is to slim the revision table by removing large and going-to-be-larger text blobs from it. But, we lose some data locality in that many cases where we read from revision we'll be reading that text out anyway.
 * Migration process would go through the existing revision rows, copying data over. When done, can drop the entire column at whim.


 * content / slots -> push back to a later MCR stage
 * keep rev_text_id for now, adding the new content & slots in a later schema stage
 * ...could then later kill rev_text_id if it stops being relevant.
 * would probably want rev_content_model and rev_content_type migrated to a rev_content_model_id and rev_content_type_id