Query Optimization For Big Spatial Databases Using Theoretical Analysis And Machine Learning