问题:

我已经有表结构,想造一些实验数据。

除了用存储过程和自己写程序,还有什么快速的方法?

实验:

我们先建一个库,

创建一张表,让表的列多一些,

下载好我们需要的工具,

现在我们就可以来生成数据了,

在比较一般的虚拟机上,为一个 26 列的表生成十万条数据,需要近 4 分钟的时间

来看一下生成的数据:

值得一提的是,其中的文本生成规则,对应不同长度的字段,生成的规则也不同,文档如图:

Lorem Ipsum 并不是随机文本。以下引自 https://cn.lipsum.com/

Lorem Ipsum 始于西塞罗(Cicero)在公元前 45 年作的 “de Finibus Bonorum et Malorum”(善恶之尽)里 1.10.32 和 1.10.33 章节。这本书是一本关于道德理论的论述,曾在文艺复兴时期非常流行。

另外,mysql_random_load_data 工具也支持根据外键引用关系,生成外键的相关数据。

结论:

percona 为我们贡献了不少好工具,mysql_random_load_data 是其中大家比较陌生的一款。

我们经常需要做一些实验,用 sysbench、mysqlslap 等工具,自定义表结构都比较麻烦;用 generatedata 等数据生成工具,需要人工将表结构翻译成工具能识别的格式。

mysql_random_load_data 使用起来清晰简单。其实 golang 语言编写,修改起来也比较简单。

大家如有对其的改进需求,也可回复本文,如果有一定数量的需求,我们也可以开一个分支对其进行增强。

关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!