I'm not sure if this will help but the fastest thing to render is nothing at all.
Make sure to cull as much unseen data out as you can.
On the CPU use an octree or something and cull with view frustum, that get you everything in front of the camera, then cull that some more with occlusion query's to get only the objects that you can see.
Once this is done you will have a very small but visible set of objects to draw.
I have done this bit by bit as I need to get more and more drawn on screen I had to cull more and more.
For a long time I was just using the view frustum but that will only get you so far.
If you have shadows then use cascaded shadow maps because you can update the cascades at different intervals, also you only need to render everything in to one or two cascades the last two in my case get less and less drawn into them.
I do the same with water reflections, I skip grass and any small plants and undergrowth.
Just sit back and think to your self what do I really need to draw, think out side the box and just try stuff