Статьи

Служба Index Advisor для Couchbase N1QL (SQL для JSON)

Couchbase N1QL — это SQL-подобный язык для данных JSON. Для эффективного извлечения и обработки данных JSON нам нужны соответствующие индексы. Правила создания этих индексов можно прочитать здесь . Но это включает в себя слишком много читать, поэтому теперь мы имеем Advisor индекс службы ,  который принимает запрос и выдает рекомендации в индекс , который отвечал бы ожиданиям двигателя запроса Couchbase — все без загрузки последнего сервера Couchbase.

Этот сервис предоставит рекомендации по индексам, чтобы помочь администраторам баз данных, разработчикам и архитекторам оптимизировать производительность запросов и соответствовать соглашениям об уровне обслуживания.

Index Advisor выпущен как часть Couchbase Server 6.5. Если вы скачали эту версию, то у вас есть все (и даже больше), чем предоставляет этот сервис. Эта услуга ежемесячно обновляется. До сих пор, после первоначального выпуска сервиса в январе, в феврале и марте проводились обновления для дефектов, обнаруженных QE и клиентами, использующими сервис.

Когда вы должны использовать эту услугу

Если ты:

  1. Хотите избежать чтения правил создания индексов , их понимания или реализации, чтобы найти соответствующие индексы для вашего запроса / запросов / рабочей нагрузки.
  2. Не хотите загружать последнюю версию сервера Couchbase 6.5.
  3. Используете старую версию Couchbase и вам нужна помощь в создании правильных индексов для ваших запросов.
  4. Хотите генерировать рекомендации для индексов без создания корзины или загрузки схемы или данных.


Вам также могут понравиться:
N1QL и ПОИСК: как использовать полнотекстовый индекс (FTS) Couchbase в N1QL

Фон

N1QL — это SQL для данных и метаданных JSON. Каждый запрос, написанный на N1QL, имеет план запроса, подготовленный механизмом запросов N1QL. Производительность и эффективность запроса зависят от его плана. Создание правильных индексов для данных помогает в выборе тех индексов, которые могут извлечь набор результатов наиболее эффективным способом. Несмотря на то, что сам документ JSON не имеет схемы, индекс должен иметь схему.

Например, индекс ix1 (field1, field2) отличается от индекса ix2 (field2, field1).

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

Жизнь Запроса:

В зависимости от того, насколько хорош шаг 4, мы можем минимизировать / полностью пропустить шаги 5 и 6 и тем самым повысить производительность запроса. Поэтому выбор полей в индексе является очень важной частью. Чтобы помочь с этим, мы выпускаем советник по индексам.

Индекс Советник: Сервис

С помощью Index Advisor вы можете

  1. Предоставьте запрос или несколько запросов даже с сервера старше 6.5, и служба порекомендует индексы, которые вы должны иметь / создать, чтобы добиться максимальной производительности.
  2. Поскольку у нас нет ваших данных или схемы, мы не можем увидеть, есть ли у вас эти индексы. Вскоре мы улучшим этот интерфейс, чтобы принимать данные / статистику / схему / выводить операционные / текущие индексы — или что-либо еще, что вы можете предоставить нам, чтобы дать лучшие рекомендации.

Как только вы дадите нам запрос с директивой ADVISE, инструмент даст рекомендации для минимального индекса и индекса покрытия.

  • Индексы . В этом разделе перечислены рекомендуемые индексы на основе предикатов в предложении WHERE / ON, а также соответствующее правило рекомендации, которому следует каждый индекс.
  • Покрывающие индексы : в этом разделе перечислены закрывающие индексы, применимые к входному запросу, то есть индекс, который включает все поля, на которые есть ссылки в запросе, чтобы избежать дополнительного перехода к службе данных.

Вот внешний вид инструмента:

Примеры:

1.


Джава