We don’t have functionality like (for example) lazy-loading of BLOB and TEXT columns in core, nor excluding things like search vector pseudo-columns. These have a pretty big impact on performance, especially when you look into the mysql internals.
Rather than add this functionality to core, I’d like to make a very small refactor to construct_finder_sql that moves the “"/"my_table.” default select strings out to a separate method, default_select, which can then be cleanly overriden in plugins without needing to copy in the entire construct_finder_sql method to the plugin.
Because it’s just a small extraction, it’s a pretty safe change. It changes only the defaults, all explicit select arguments & scopes still override it. Unless anyone can suggest a superior approach, could this please be considered for inclusion in 2.2?