How can I have intensive stored procedures run on a different machine to where tables are stored?
For the last 20 years, CPUs have only slightly improved in performance.
MySQL rarely tops out a CPU these days.  When it does, there is usually an index that can be added or some SQL changed to make it quite down.
Hence, I suggest that the CPU you have is not that bad.


"Calculating analytics on demand" is a common problem in Data Warehousing.  There is a common solution:  build and maintain Summary table(s)  You can still use a Stored Proc to interface with those table(s) to provide the analytics, but many times as fast (elapsed time).

Federated?  Ouch.  That can be terribly slow.  There are cases where fetching each row is a roundtrip to the other machine.  Consider connecting to the other machine(s) and querying them directly.

Once you have gotten further in your design, start another Question for further advice.  Please provide data sizes, RAM and disk sizes, what the analytics are, schema, etc.

In particular, be sure to minimize disk footprint from the start.  Don't use BIGINT except in rare cases.  Don't use DOUBLE; pick something smaller, normalize 'names', etc.

Now you have me worried that you are at the mercy of whether Synology has the smarts to follow the above hints??