Руководство пользователя для разработчиков
Оптимизация запросов
Есть несколько трюков, которые стоит учесть при использовании SQL API, чтобы ускорить работу вашего приложения.
- Запрашивайте только те поля, которые вам нужны. Выбор всех столбцов вернет полную версию вашей геометрии в
the_geom
, а также версию с перепроецированием вthe_geom_webmercator
. - Используйте функции PostGIS для упрощения и отсеивания ненужных геометрий, когда это возможно. Одна из полезных функций - ST_Simplify.
- Не забудьте создать индексы, которые ускорят выполнение некоторых из ваших наиболее распространенных запросов. Подробности см. в разделе “Создание индексов”.
- Используйте
cartodb_id
для получения конкретных строк ваших данных, это уникальный ключевой столбец, добавленный в каждую таблицу Epsilon Metrics. - Проверьте, не содержат ли ваши полигоны чрезмерное количество вершин, и разделите их, если это так.
Создание индексов
Чтобы улучшить производительность карт, опытные пользователи могут использовать SQL API для добавления пользовательских индексов к своим данным. Создание индексов полезно, если у вас большой набор данных с отфильтрованными данными. Индексируя выбранные данные, вы повышаете производительность карты и ускоряете генерацию результатов. Функциональность индекса полезна в следующих сценариях:
- Если вы фильтруете набор данных по значениям в одном или нескольких столбцах.
- Если вы регулярно запрашиваете данные через SQL API и фильтруете их по одному или нескольким столбцам.
- Если вы создаете карты Torque на очень больших наборах данных. Поскольку карты Torque основаны на данных, чувствительных к времени (например, дате или числовому столбцу), создание индекса на временных данных является оптимальным.
Обычно индексируемые данные представляют собой один столбец, представляющий отфильтрованные данные. Чтобы создать индекс для одного столбца, примените этот SQL-запрос к вашему набору данных:
CREATE INDEX idx_{НАЗВАНИЕ_ДАТАСЕТА}_{ИМЯ_СТОЛБЦА} ON {НАЗВАНИЕ_ДАТАСЕТА} ({ИМЯ_СТОЛБЦА})
Совет: Вы также можете применить более продвинутые индексы с несколькими столбцами. Перед продолжением ознакомьтесь с полной документацией по PostgreSQL Indexes.
Примечание: Индексы учитываются в объеме хранения данных, связанном с вашим аккаунтом. Будьте осторожны при создании пользовательских индексов. Обратите внимание, что автоматически созданные индексы Epsilon Metrics не учитываются в вашей квоте. Например, столбцы the_geom
и cartodb_id
. Эти столбцы используются для индексации геометрий вашего набора данных и не связаны с хранением.
Для создания индексов, которые ускорят выполнение наиболее распространенных запросов, следуйте этим рекомендациям:
- Создавайте индексы только для столбцов, по которым часто выполняются фильтрация или сортировка.
- Используйте индексы для ускорения JOIN операций между таблицами, особенно если у вас есть большие наборы данных.
- Учитывайте, что создание индексов может занять некоторое время, особенно для больших наборов данных. Вам стоит запланировать время на создание индексов и поддержание их актуальности.
- Регулярно проверяйте и обновляйте свои индексы, чтобы они оставались эффективными. Устаревшие или неиспользуемые индексы могут замедлить работу базы данных.
- Не забывайте, что индексы занимают дополнительное место на диске, так что управляйте ими с учетом доступного пространства хранения.
В целом, использование индексов является мощным инструментом для оптимизации производительности ваших запросов и карт. Однако следует тщательно выбирать, для каких столбцов и таблиц создавать индексы, а также регулярно поддерживать и обновлять их, чтобы обеспечить эффективность и экономию ресурсов.