mysql - 如何在 MySQL v8 中生成固定数量的行来进行性能测试?

标签 mysql sql mysql-8.0

我正在尝试在 MySQL v8 中创建性能测试。为此,我需要生成固定数量的行,以便将它们插入到我的表中。

在 PostgreSQL 中,我会做类似的事情:

insert into film(title)
select random_string(30)
from   generate_series(1, 100000);

这里,random_string(int) 是一个自定义函数。在 MySQL 中,我可以使用 https://stackoverflow.com/a/47884557/9740433 中提到的内容,我想这就足够了。

如何在 MySQL v8 中生成 100k 行?

最佳答案

根据 Strawberry 的评论回答我自己的问题:

WITH RECURSIVE cte (n) AS
(
  SELECT 1
  UNION ALL
  SELECT n + 1 FROM cte WHERE n < 5
)
SELECT * FROM cte;

您可能想要更改递归深度:SET SESSION cte_max_recursion_depth = 1000000;

关于mysql - 如何在 MySQL v8 中生成固定数量的行来进行性能测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50561574/

相关文章:

mysql UPDATE 语句逐一更新列?

java - Hibernate save() 和事务回滚

mysql - 如何为博客系统设计数据库?

mysql - SQL连接两个表

SQL 列引用 "id"不明确

mysql - 如何在 MySQL v8 中模拟 LATERAL JOIN 来为每一行执行子查询或连接?

python - PyMySQL 无法连接到本地主机上的 MySQL

mysql - 如何将 SQL 别名与变量一起使用

sql - 如何采用单独列排序的 DISTINCT ON 子查询,并使其快速?

mysql - InfoSchema 用户丢失