Как использовать векторные плитки mapbox с высокой производительностью?

Я немного запутался в Mapbox MVT. Как я понял, тайл - это маленький кусочек карты, как в пазле.

Не совсем уверен в работе MVT.

https://docs.mapbox.com/data/tilesets/guides/vector-tiles-introduction/#benefits-of-vector-tiles

Здесь написано Vector tiles are really small, enabling global high resolution maps, fast map loads, and efficient caching.

Дело в том, что я пытаюсь получить все координаты из базы данных, которые могут достигать более чем 10K и в настоящее время получаю данные из postgis, используя:

    query = f"""
        SELECT NULL AS id, ST_AsMVT(q, 'default', 4096, 'mvt_geom')
        FROM (SELECT "locations"."name",
            ST_AsMVTGeom(ST_Transform(locations.geom, 3857),
            ST_TileEnvelope(1, 0, 0), 4096, 0, false) AS mvt_geom
        FROM locations) AS q;
    """
    with connection.cursor() as cursor:
        cursor.execute(query)
        rows = cursor.fetchall()
        mvt = bytes(rows[-1][-1])

    return Response(
        mvt, content_type="application/vnd.mapbox-vector-tile", status=200
    )

Теперь я задаюсь вопросом о проблемах с производительностью, так как каждый раз, когда пользователь будет заходить, это будет создавать нагрузку на db.

И еще одна проблема, с которой я сталкиваюсь - при использовании vector tiles в качестве источника, он вызывает url источника и (ударяя по db) каждый раз, когда я перемещаю карту.

        type: 'vector',
        tiles: [
          'http://url/{z}/{x}/{y}.mvt'
        ]

Можно ли вызвать исходный url на определенном уровне масштабирования, и до этого момента все точки остаются на карте?

например,

Mapbox calls source url at zoom level 1 and draw points on to the map and when zoom level reach 7 then mapbox again calls the source url and update the map. 

Буду очень благодарен, если кто-нибудь сможет помочь.

Вернуться на верх