MonetDB create 100.000 columns
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 请求之后,每个事务大约需要 15 秒,这意味着我需要很多时间来完成表的创建。
你能告诉我是否有一种简单的方法来创建 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
);
掉落表大哥反对非常非常长。我不知道为什么。
我也认为这不是一个好主意,但它回答了你的问题。
皮尔
相关文章:
- 如何计算文件中的"columns"数?
- Using C++ CryptAPI:CNG Create CSR
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- Firebase C++VS2018 SDL2-在Firebase::app::create(..)上执行异常处理
- QThread::create 似乎没有将参数传递给函数
- 为什么"non-standard syntax; use '&' to create a pointer to member"在 CTOR 中使用线程?
- QThread::create running on UI Thread
- 空指针(为缺少的输出数组调用的 create() 在 create,文件 /home/m/OpenCV/modules/
- 使用宏替换工厂模式样式 API 中的"create()"函数
- 错误:'create'不是 'cv::Tracker' 的成员
- Gtk::Main 和 Gtk::Application::create 有什么区别?
- magick 对magick :: image :: columns的未定义引用
- 如果它被定义为 C++ 类中的成员函数,我得到了"non-standard syntax; use '&' to create a pointer to member"
- libgit2:git_clone() 失败并出现"failed to create ssl object"错误
- 使用c_str时"Use & to create a pointer to a member"
- OGRE-找不到请求的发射极类型.在promentystemmanager中:: _ create -emitter
- Visual Studio 2015:获取"non standard syntax, use '&' to create a pointer to member"错误
- MinGW在代码块中构建时的ar.exe "could not create temporary file whilst writing archive: no more archived files
- Create Eigen::Ref from std::vector
- MonetDB create 100.000 columns