Что такое большой стол (например, дизайн базы данных Google), у меня есть такой тип требований, но я не знаю, как его проектировать.Дизайн базы данных (Big Table)
В Большой таблице, как поддерживать отношения между ними?
Что такое большой стол (например, дизайн базы данных Google), у меня есть такой тип требований, но я не знаю, как его проектировать.Дизайн базы данных (Big Table)
В Большой таблице, как поддерживать отношения между ними?
создать всю таблицу с двигателем хранения InnoDB которые поддерживают отношения
Выберите поля таблицы в соответствии с и ограничиваются требованием
бумагой большого стола, опубликованная в Google, может быть трудно читать. Надеюсь, мой ответ поможет вам понять.
В старые времена, RDBMS хранит данные по строкам, одна записи один ряд, 1,2,3,4,5 .....
Тогда, если вы хотите, чтобы найти запись 5, это хорошо, база данных будет искать в дереве B + (или что-то подобное), чтобы получить адрес записи 5, загрузите его для вас.
Но кошмар - это когда вы хотите получить записи с колонкой «пользователь = Майкл», база данных не имеет никакого способа, но искать каждую запись, чтобы проверить, является ли пользователь «Майкл».
У Big Table есть другой способ хранения данных. Он хранит все столбцы с помощью инвертированной таблицы. Когда мы хотим узнать все записи, которые удовлетворяют «user = Michael», он ищет это как ключ через дерево B + или хеш-таблицу и получает адрес инвертированной таблицы, где хранится список всех записей, удовлетворяющих требованиям.
Возможно, хорошей отправной точкой является Lucene, полнотекстовая поисковая система с открытым исходным кодом и полная реализация больших принципов таблицы.
Следует заметить, что инвертированная таблица не является хранилищем на основе столбцов в РСУБД. Они разные, пожалуйста, помните об этом.