Как хранить индекс отдельно от данных на Azure? - PullRequest
1 голос
/ 17 августа 2010

Я читал, что многие веб-сайты хранят индекс отдельно от данных.

В частности, в Azure индекс будет храниться в Azure SQL , а данные - в хранилище таблиц Azure .

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

Я не уверен, как сконструировать систему для этого. Может кто-нибудь объяснить процесс и как на самом деле работает внешний индекс?

Что происходит, когда вы хотите иметь вторичные индексы в разных столбцах, как это работает?

Как насчет того, когда вы обновляете / удаляете / добавляете данные? Как обновляется индекс + фактические данные?

Ответы [ 2 ]

2 голосов
/ 28 января 2011

Если вы не обязаны иметь индекс в Sql, попробуйте механизм индексирования, например Lucene.Net . В моем проекте я храню данные в хранилище таблиц Azure и индексирую их в индексе Lucene. Для Lucene.Net существует оболочка для использования в Azure. Таким образом, вам не нужно Sql. Хранение таблиц дешевле, чем Azure Sql.

1 голос
/ 17 августа 2010

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

Чем больше у вас индексов, тем дороже будут ваши обновления, удаления и вставки, поскольку все эти индексы должны поддерживаться при вставке в таблицу

Таким образом, вы можете хранить свои данные на диске D и свои индексы в другой файловой группе на диске E

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...