What is the basic concept behind revisons in term of performance?
Drupal essentially stores a copy of the node each time a revision is created. So if you're making alot of text edits it will be your database size that will mainly increase because of enabling revisions. (But drupal will also keep any files uploaded that are associated with previous revisions)

So normally for nodes you have about 3 core tables with a row for each node. Then you have a table for each field you add to content types e.g. "node__field_my_field" which holds the live content for that field.

So with a million nodes you'd expect 1 million rows in the core node tables and up to 1 million rows in each of your field tables for each node (If you populate every field for every node)

If you enable revisions a few new tables get created to start tracking each revision, I think its 2 extra core tables and then a revision table for each field. But this time every time you make a revision it add a row to all these tables. So with your 1 million nodes with 3 revisions you will effectively quadruple your database storage requirement

But in terms of site performance it shouldn't really have too much effect as databases can scale well