【需求】我们要创建一个320个列的表,用来验证宽表的查询性能
1、快速创建几百列宽表的方法
(1)首先创建一个小表,我们暂且叫它A表,如20列;
(2)将A表多次复制成另一个B表,改变列名即可;
操作演示,已初始表为2列,最后转换为320列的方法
Create Table `student` (
`a` int DEFAULT NULL,
`b` int DEFAULT NULL)
Create Table `student2` (
`a` int DEFAULT NULL,
`b` int DEFAULT NULL,
`a1` int DEFAULT NULL,
`b1` int DEFAULT NULL,
`a2` int DEFAULT NULL,
`b2` int DEFAULT NULL,
`a3` int DEFAULT NULL,
`b3` int DEFAULT NULL,
`a4` int DEFAULT NULL,
`b4` int DEFAULT NULL,
........................按照此方法直接复制粘贴改即可
)
2、快速处理要写入的数据方法
(1)首先向student表中插入2行数据;
(2)用导出数据的方法将student表中的数据导入到一个csv文件中,示例方法如:
SELECT * FROM student INTO OUTFILE '/syw_test/TPCH-tools/student.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
或者
mysql -h<IP地址> -u<用户名> -p<密码> -P<端口> <库名> -e "select * from <表名>" -s |sed -e "s/\t/,/g" -e "s/NULL/ /g" -e "s/\n/\r\n/g" > /syw_test/TPCH-tools/student.csv(存储导出文件的路径)
(3)将导出的数据文件student.csv进行复制一次作数据合并时的备用,复制后的文件命名为student1.csv;
cp student.csv ./student2.csv
(4)用paste方法将导出的数据文件student.csv与student1.csv进行合并,这样由原来的2列数据就变成了4列,经过多次合并,就有了满足自己列宽的数据;
paste -d "," student.csv student2.csv >student_01.csv
参数说明:
<1> -d:表示数据合并时要用,(逗号)隔开。若你说csv文件合并直接按照上面的实例写即可;
<2> >student_01.csv:表示将两个文件合并后的内容写入到新文件student_01.csv中
3、导入数据到表中
根据自己的数据库特性,选择特定的方式导入数据即可,如下是符合MySQL协议的数据导入示例
(1)使用load data…
load data local infile '/syw_test/TPCH-tools/student.csv' into table student fields terminated by ',' lines terminated by '\n';
(2)使用外表minio的方式均可,详细的内容可在网上搜索找一下
最后修改时间:2023-03-31 12:03:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




