Optimizing geojson visualisation

I have a 3D GeoJSON data file with more than 5000 features such as buildings and trees. I used the GeoJsonDataSource functionality (GeoJsonDataSource - Cesium Documentation) to load the data in Cesium, but it takes a lot of time, and sometimes there is not enough memory to load all the data.

How can I optimize this visualization? I am thinking of converting it to another format like 3D Tiles but without hosting it on a server like Cesium, as the GeoJSON is directly retrieved from the database.

If anyone could help me, I’d be grateful.