Fastest MySQL pagination and ORDER from a huge UNION ALL VIEW
Rethink the need for getting the total count; it is probably the most costly part.
Time each of the two queries separately.  Optimize them separately.  Then re-time.
Do you really need all (*) columns?  TEXT and BLOB columns extract an extra toll.
There is no advantage in having a VIEW; instead there is a big disadvantage in that the UNION will be run twice!  (In MySQL 8.0, WITH might avoid this 'twice'.)
For the query with the LIMIT, you can and should do the limit on each subquery.  More details here .
Each table needs INDEX(column1) .


This should significantly speed up (more than 2X) the big count:

SELECT  ( SELECT COUNT(*) FROM A.month )
      + ( SELECT COUNT(*) FROM A.year )
      + ( SELECT COUNT(*) FROM B.month )
      ... ;


This is because COUNT(*) is faster than either the gathering of all the rows into a temp table or the counting of rows in that table.

I predict that the result of all my suggestions will get it under 5 seconds.  If not, please provide SHOW CREATE TABLE for each table.  And what MySQL version you are using.

Paginate through 10K rows??

Let approach your problem from the other side.  If I calculate correctly, there are about 10,000 pages in your output?  What user can page through that many pages before dying if old age??

If you have more than a few dozen pages, then, for the sake of the users sanity, come up with another way to show the data to them.  Pagination is not practical.

Let me provide a simple example -- Paginating through all a list of all cities in the world...

Plan A, like pagination...  First have the user pick what country.  (Even that is clumsy since there are about 250 countries.)  Then pick a province/state/canton/etc.  Then pick A..Z, then page through the cities.

Plan B, moving farther afield...  Provide some "search" mechanism(s) -- for searching by part of the name, by country/state/province/etc, by population range, by part of the world, etc.