Как можно сравнить производительность чтения между Azure SQL и Cosmos DB? - PullRequest
0 голосов
/ 06 мая 2018

Попытка составить список плюсов и минусов между параметрами SQL и NoSQL в Azure. Я знаю о большинстве ключевых концептуальных различий между этими двумя вариантами, но есть все важные вопросы производительности. Я продолжаю читать, что Cosmos DB имеет отличную скорость отклика, но повторяется так часто, что я довольно скептически.

Мне бы очень хотелось узнать, как некоторые люди сравнивают производительность (в частности, производительность операций чтения) для параметров SQL и NoSQL.

Edit: Я ищу хранить очень большие CSV. Каждый имеет столбец отметки времени и до 1000 столбцов данных. Я намерен разбить каждый столбец на отдельный документ и получить сводный документ, содержащий ссылки на каждый столбец, содержащий данные.

Скорость важна для чтения, а не записи.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Маловероятно, что вы получите здесь решающий ответ, так как это зависит от МНОЖЕСТВА мелких нюансов, которые не делают его и не должны отвечать на вопрос SO. Вот почему есть архитекторы и администраторы баз данных - потому что нет универсальных серебряных пуль. Если вы хотите знать, что работает лучше, вам следует выбрать, какие именно сценарии вы хотите оптимизировать, установить цели, наметить красные линии и проверить это.

Некоторые соображения:

  • Создание реалистичного набора данных. В обоих файлах csv, размере, структуре и распределениях значений столбцов, если возможно, используйте реальные данные.
  • Выполните тестовые сценарии, требующие нескольких обращений от одного и того же центра обработки данных - задержка одного вызова может быть важной.
  • Как правило, SQL подходит для фиксированной схемы, и покрытие индексов в SQL также быстро. Подумайте, какие запросы должны быть быстрыми, и как бы вы смоделировали 1000 столбцов в БД для удовлетворения ваших запросов? Можете ли вы написать покрывающие индексы к вашим запросам?
  • CosmosDB проще, если структура сильно меняется. Новые столбцы появляются в случайное время?
  • CosmosDB имеет автоматическое индексирование / индексирование по умолчанию. Это может быть важно с точки зрения обслуживания / разработки.
  • Рассмотрите набор навыков вашей команды. Если производительность имеет первостепенное значение, тогда выбор привычного мышления и технологического стека может помочь вам избежать дорогостоящих ошибок проектирования. Особенно, если ваш бюджет / сроки не позволяют переписать.
0 голосов
/ 06 мая 2018

Если вам нужно хранить документы, то Cosmos DB покажет лучшую производительность. Для реляционных баз данных, которым не нужно хранить документы, база данных SQL Azure будет показывать лучшую производительность.

Больше, чем просто производительность, не забывайте о свойствах ACID, предлагаемых базой данных SQL Azure для транзакций. Вы можете работать с Cosmos DB, чтобы присвоить ему некоторые свойства ACID, но это снизит производительность Cosmos DB.

...