Saving Custom Post types and fields to a custom table

If you look at wp_insert_post()‘s source code, you can see that it’s locked to using $wpdb->posts…so you’d really need to modify the core to make it work the way you have outlined (or potentially filter it earlier up in the loop, either way, you’re making a mess). That said, having a large number of posts does not put a significant load on your site, since almost everything is done by IDs or by name directly, and rarely, if ever, by filtering from a list of returned results…you’re talking like fractions of a millisecond in gains for an incredibly hacky solution. I strongly recommend that you just stick with what wordpress has by default as the structure is quite efficient as it is.