← Hyperdrive (Postgres & MySQL) / hyperdrive / reference
Часто задаваемые вопросы
Ниже приведены ответы на самые частые вопросы о Hyperdrive.
Подключение
Использует ли Hyperdrive определённые IP-адреса для подключения к базе данных?
Hyperdrive подключается к вашей базе данных с помощью Диапазоны IP-адресов Cloudflare ↗. Они являются общими для всех конфигураций Hyperdrive и других продуктов Cloudflare.
Это можно использовать для настройки ограничений в брандмауэре базы данных, чтобы ограничить IP адреса, имеющие доступ к базе данных.
Поддерживает ли Hyperdrive подключение к базам данных D1?
Hyperdrive не поддерживает D1 потому что D1 изначально обеспечивает быстрое подключение из Workers.
Hyperdrive создан для ускорения подключения к традиционным региональным SQL-базам данных, таким как PostgreSQL. Доступ к таким базам данных обычно осуществляется с помощью драйверов, работающих по протоколу TCP/IP. В отличие от D1, установка защищённого соединения с традиционной SQL-базой данных требует нескольких round trip между клиентом (вашим Worker) и сервером базы данных. См. Как работает Hyperdrive с подробным объяснением того, зачем нужны сетевые циклы обмена данными и как Hyperdrive решает эту проблему.
D1 не требует дополнительных сетевых обращений для создания подключений к базе данных. D1 изначально спроектирована обеспечивать высокую производительность при обращении из Workers, без необходимости в Hyperdrive.
Стоит ли использовать Placement вместе с Hyperdrive?
Да, если ваш Worker выполняет несколько запросов к базе данных на один входящий запрос. Placement запускает ваш Worker рядом с базой данных, снижая задержку на запрос с 20-30 мс до 1-3 мс. Hyperdrive берёт на себя создание пула соединений и его настройку. Placement сокращает сетевое расстояние при выполнении запросов.
Используйте placement.region если ваша база данных развёрнута в AWS, GCP или Azure. Используйте placement.host для баз данных, размещенных в другом месте.
Кеширование
Аннулирует ли Hyperdrive кешированные чтения при записи в базу данных
Нет. Hyperdrive не аннулирует кешированные результаты запросов на чтение при записи данных в базу данных вашим приложением. Совпадающий запрос на чтение может возвращать кешированный результат до истечения настроенного max_age истекает, и Hyperdrive может отдавать этот результат в течение stale_while_revalidate интервала, пока кеш обновляется.
Используйте конфигурацию Hyperdrive с отключённым кэшированием для запросов на чтение, которые должны возвращать только актуальные данные, например для аутентификации, сессий, прав доступа или чтения сразу после записи. См. Кеширование запросов чтобы выбрать стратегию кеширования.
Можно ли использовать Hyperdrive, если некоторым операциям чтения нужна согласованность чтения после записи
Да. Настройте две привязки Hyperdrive к одной базе данных: одну с включенным кешированием запросов для чтения, допускающего небольшую задержку актуальности данных, и вторую с отключенным кешированием запросов для чтения, которое должно быть всегда актуальным. Привязка с отключенным кешированием всё равно предоставляет пул соединений Hyperdrive и быструю установку соединения.
Если SQL-запросы формирует библиотека объектно-реляционного отображения (ORM) или библиотека аутентификации, создайте отдельные клиенты базы данных для каждой привязки и передайте клиент с отключенным кешированием коду, которому нужны актуальные данные при чтении.
Цены
Взимает ли Hyperdrive плату за передачу данных и исходящий трафик?
Нет.
Доступен ли Hyperdrive в Workers Free план?
Да. См. цены.
Взимает ли Hyperdrive дополнительную плату за вычисления?
Сам Hyperdrive не взимает плату за вычисления (CPU) или время обработки (wall clock). Workers, которые обращаются к Hyperdrive и обрабатывают результаты, например сериализуют их в JSON и/или выполняют запросы, тарифицируются по Тарифы Workers.
Лимиты
Существуют ли ограничения для Hyperdrive?
Ознакомьтесь с опубликованными ограничения документация.