What's the best way to create large tile-based levels?

Hello!
I’m currently working on a strategy game with focus on micro-management of individual citizens.
Right now I’m using a terrain but I eventually want to change it to a world generated of different tiles like in the game Rimworld, preferrably generated using a seed.
The different types of tiles will have different features, for example you can’t grow plants on sand, you can’t build on water, etc.
My guess is that building the world out of 200x200 individual actors might have a heavy impact on performance.

I don’t know a lot about instancing in UE4. Can I somehow make them just instances? How much would that improve performance? And is it even possible to make them instances if the tiles can spawn and change on runtime and can have different materials?

Or should they instead all be meshes within one single actor for the whole landscape? And then the current values oft the different tiles, like current temperature, etc., will be stored somewhere else in a database or something.

Or is there a more efficient way that I don’t know of?

World Composition World Composition User Guide | Unreal Engine Documentation
Level steaming Level Streaming | Unreal Engine Documentation

It’s a top-down strategy game. You can zoom out quite far and see large parts of the level.
So I guess world composition and streaming are not the right way to do it.