[英]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.