Unity always has issue with game optimizations and performance, because if you are targeting small mobile devices like Android and iOS then you must be very careful about the memory and performance of the game.
Batching is totally depends on the Draw calls. If you are using Static batching then you can save a lot of CPU cycles. In the static batching it is necessary that no calls for the CUP or GUP so that your game can run fast.
Dynamic batching is just opposite from this. This is not which you need to select. All the objects which are not static that means they are Dynamic. To use the Dynamic batching you need to use as small objects with as possible as small vertices.
Read more about Different Ways to Increase Unity Game Performance visit FindNerd.