Я пытаюсь создать базу данных MonetDB, которая должна содержать 100k столбцов и приблизительно 2M строк типа smallint.MonetDB create 100.000 columns
Для генерации 100k столбцы Я использую код C, то есть, цикл, который выполняет следующий SQL запрос:
ALTER TABLE test ADD COLUMN s%d SMALLINT;
, где% d обозначает число от 1 до 100000.
Я наблюдал что после 80000 запросов sql каждая транзакция занимает около 15 секунд, что означает, что мне нужно много времени, чтобы завершить создание таблицы.
Не могли бы вы рассказать мне, есть ли простой способ создания столбцов 100k?
Кроме того, вы знаете, что именно происходит с MonetDB?
Зачем вам колонны 100K в одном столе? Похоже, вам нужно перестроить схему БД. – NathanOliver
Ну, разделение таблицы на два (или более) может быть альтернативным решением, но я хотел бы сначала понять, могу ли я хранить данные в одной таблице. Первичный ключ - это один столбец, поэтому я не вижу никакой конкретной причины, по которой monetdb не справляется с этим. – Roman
Большинство БД, я думаю, задохнутся на 100 тыс. Столбцов в таблице. Oracle поддерживает только 1K, а MySQL поддерживает только 4096. – NathanOliver