Row Stores vs Column Stores - PullRequest
       5

Row Stores vs Column Stores

0 голосов
/ 05 апреля 2019

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

1) SELECT * FROM Person

2) SELECT * FROM Person WHERE id=5

3) SELECT AVG(YEAR(DateOfBirth)) FROM Person

4) INSERT INTO Person (ID,DateOfBirth,Name,Surname) VALUES(2e25,’1990-05-01’,’Ute’,’Muller’)

В этих примерах Person.id является первичным ключом.

Статья Базы данных Row Store и Column Store дает общее обсуждение этого вопроса, но меня особенно беспокоитчетыре запроса выше.

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Понятия не имею, о чем вы спрашиваете.У вас есть это утверждение:

INSERT INTO Person (ID, DateOfBirth, Name, Surname) 
    VALUES('2e25', '1990-05-01', 'Ute', 'Muller');

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

Затем у вас есть три запроса.Первое не может быть оптимизировано.Второй оптимизируется, предполагая, что id является первичным ключом (разумное предположение).Третий требует полного сканирования таблицы - хотя это может быть улучшено с индексом только на DateOfBirth.

Если данные уже в этом формате, зачем вам их менять?

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

0 голосов
/ 06 апреля 2019

SELECT * FROM ... запросы лучше для хранилищ строк, так как он имеет доступ к многочисленным файлам.

Хранилище столбцов подходит для агрегирования по большому объему данных или когда у вас есть запросы, для которых требуется всего несколько полей из широкой таблицы.

Следовательно:

1-й запрос: row-wise

2-й запрос: row-wise

3-й запрос: column-wise

4-й запрос: row-wise

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