Я хочу создать широкую таблицу из тысяч строк в столбце mariadb. Я не нашел документации о максимальном количестве столбцов, разрешенном механизмом хранения. Я также хотел бы знать, как будет производительность columnstore для 1000 целочисленных столбцов?
Каковы максимальные ограничения столбца Mariadb?
Ответы (2)
Для Columnstore нет ограничений на количество столбцов, но производительность приема данных — не лучший банкомат. В ближайшее время мы значительно сокращаем сроки.
(Предупреждение: этот «ответ» основан на моем понимании дизайна, а не на каких-либо «фактах».)
Размер таблицы на диске должен быть пропорционален количеству столбцов.
Как и в большинстве случаев в MariaDB, возможно, существует жесткое ограничение на количество столбцов, но я не могу придумать причины, по которой оно должно быть меньше 1000. Возможно, вместо этого может быть какая-то большая степень двойки.
При ссылке только на небольшое количество столбцов не должно иметь значения, сколько столбцов в таблице. Способ структурирования данных должен позволять извлекать каждый столбец с относительно фиксированным объемом усилий.
Я ожидаю, что для фильтрации усилия будут зависеть от количества столбцов, используемых для фильтрации, и их распределения. Если ваше предложение WHERE
ссылается на множество столбцов, я бы не ожидал хорошей производительности.
В любом движке наличие большого количества столбцов не обязательно является разумным решением. В общем, когда у вас много столбцов, которые не используются для фильтрации или сортировки (WHERE
, ORDER BY
), вы также можете поместить их в строку JSON (или другую структуру) и сохранить как одиночные столбцы TEXT
или BLOB
. Затем позвольте приложению проанализировать строку, чтобы получить отдельные столбцы.
Колонный магазин сияет для «фильтрации». Это также очень хорошо сжимает данные, и мое предложение JSON победило бы это. Но теперь вы находитесь в поиске компромиссов между скоростью и пространством, которые очень зависят от данных.
Не могли бы вы описать предлагаемый вами набор данных?