2011-12-17 2 views
-2

Что такое большой стол (например, дизайн базы данных Google), у меня есть такой тип требований, но я не знаю, как его проектировать.Дизайн базы данных (Big Table)

В Большой таблице, как поддерживать отношения между ними?

ответ

0

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

Выберите поля таблицы в соответствии с и ограничиваются требованием

-1

бумагой большого стола, опубликованная в Google, может быть трудно читать. Надеюсь, мой ответ поможет вам понять.

В старые времена, RDBMS хранит данные по строкам, одна записи один ряд, 1,2,3,4,5 .....

Тогда, если вы хотите, чтобы найти запись 5, это хорошо, база данных будет искать в дереве B + (или что-то подобное), чтобы получить адрес записи 5, загрузите его для вас.

Но кошмар - это когда вы хотите получить записи с колонкой «пользователь = Майкл», база данных не имеет никакого способа, но искать каждую запись, чтобы проверить, является ли пользователь «Майкл».

У Big Table есть другой способ хранения данных. Он хранит все столбцы с помощью инвертированной таблицы. Когда мы хотим узнать все записи, которые удовлетворяют «user = Michael», он ищет это как ключ через дерево B + или хеш-таблицу и получает адрес инвертированной таблицы, где хранится список всех записей, удовлетворяющих требованиям.

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

Следует заметить, что инвертированная таблица не является хранилищем на основе столбцов в РСУБД. Они разные, пожалуйста, помните об этом.

Смежные вопросы