mysql– 如何使用随机数据生成1000000行?

mysql– 如何使用随机数据生成1000000行?,第1张

概述背景我正在研究某种数据记录器.我想尝试1000000(1M)行所需的存储空间以及Raspberry Pi如何处理这样的大表.我想用分组,计算平均值和其他性能实验来运行一些查询.我的表看起来像这样:CREATE TABLE `data` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `

背景

我正在研究某种数据记录器.

我想尝试1000000(1M)行所需的存储空间以及RaspBerry Pi如何处理这样的大表.我想用分组,计算平均值和其他性能实验来运行一些查询.

我的表看起来像这样:

CREATE table `data` (  `ID`         bigint(20) NOT NulL      auto_INCREMENT,`datetime`   timestamp  NulL          DEFAulT CURRENT_TIMESTAMP,`channel`    int(11)                  DEFAulT NulL,`value`      float                    DEFAulT NulL,PRIMARY KEY (`ID`))

如何在MysqL中填充1亿行?

要求:

> data.datetime字段:随机时间戳,但仅限一年
> data.value fIEld:给定范围内的随机浮点数(例如0.00-100.00)
> data.ID是自动增量,无需关心
> data.channel始终为1,也不需要关心它

我对sql有点了解,但我不擅长PL / sql,sql中的循环等.

编辑:

为了说清楚 – 我正在使用MysqL 5.5.

提到PL / sql是我的错误,我认为PL /代表sql中的程序功能,而不仅仅是Oracle.

最佳答案尝试使用stored procedure(用期望的行数替换1000,用测试年代替2014,也见generate random timestamps in mysql)

CREATE table `data` (  `ID`         bigint(20) NOT NulL      auto_INCREMENT,PRIMARY KEY (`ID`));DEliMITER $$CREATE PROCEDURE generate_data()BEGIN  DECLARE i INT DEFAulT 0;  WHILE i < 1000 DO    INSERT INTO `data` (`datetime`,`value`,`channel`) VALUES (      FROM_UNIXTIME(UNIX_TIMESTAMP('2014-01-01 01:00:00')+FLOOR(RAND()*31536000)),ROUND(RAND()*100,2),1    );    SET i = i + 1;  END WHILE;END$$DEliMITER ;CALL generate_data();

修改您的需求.删除程序:

DROP PROCEDURE generate_data;

也许这可以给你一个开始! 总结

以上是内存溢出为你收集整理的mysql – 如何使用随机数据生成1000000行?全部内容,希望文章能够帮你解决mysql – 如何使用随机数据生成1000000行?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1166638.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存