簡體   English   中英

MonetDB 創建 100.000 列

[英]MonetDB create 100.000 columns

我正在嘗試創建一個 MonetDB 數據庫,該數據庫應包含 100k 列和大約 2M 行的 smallint 類型。

要生成 100k 列,我使用了 C 代碼,即執行以下 sql 請求的循環:

ALTER TABLE test ADD COLUMN s%d SMALLINT;

其中 %d 是從 1 到 100000 的數字。

我觀察到在 80000 個 sql 請求之后,每個事務大約需要 15s,這意味着我需要大量時間來完成表創建。

你能告訴我是否有一種簡單的方法來創建 100k 列嗎?

另外,您知道 MonetDB 到底發生了什么嗎?

您應該只使用一個創建表

在腳本外殼(bash)中:

#!/bin/bash

fic="/tmp/100k.sql"


col=1

echo "CREATE TABLE bigcol (" > $fic

while [[ $col -lt 100000 ]]
do
    echo "field$col SMALLINT," >> $fic

    col=$(($col + 1))

done

echo "field$col SMALLINT);" >> $fic

並在命令行中:

sh 100k.sh
mclient yourbdd < /tmp/100k.sql

等待大約 2 分鍾 :D

mclient yourbdd
> \d bigcol
[ ... ... ...]
    "field99997"  SMALLINT,
    "field99998"  SMALLINT,
    "field99999"  SMALLINT,
    "field100000" SMALLINT
);

DROP TABLE bigcol 反對很長很長。 我不知道為什么。

我也認為這不是一個好主意,但它回答了你的問題。

皮埃爾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM