当前位置:   article > 正文

PolarDB-X最佳实践系列(五):使用通义千问和存储过程快速生成测试数据

PolarDB-X最佳实践系列(五):使用通义千问和存储过程快速生成测试数据

文章来源:PolarDB知乎号

作者:梦实

我们在测试数据库性能的过程中,通常需要生成一批测试数据。

以前,一般要写一段程序或者脚本来完成这项工作,但现在是2024年啦!时代变了!

PolarDB-X目前是少有的支持存储过程的分布式数据库,结合大模型,我们可以非常简单的来制造测试数据: 存储过程的原理和使用方法中心 通义官网

例如,有这样的表结构:

  1. CREATE TABLE t2 (
  2. id bigint(20) NOT NULL AUTO_INCREMENT,
  3. c1 varchar(64) NOT NULL ,
  4. c2 tinyint(4) NOT NULL ,
  5. c3 varchar(64) NOT NULL ,
  6. c4 tinyint(4) NOT NULL ,
  7. c5 varchar(64) NOT NULL ,
  8. c6 bigint(20) DEFAULT NULL ,
  9. c7 bigint(20) DEFAULT NULL ,
  10. c8 double DEFAULT NULL ,
  11. c9 bigint(20) DEFAULT NULL ,
  12. PRIMARY KEY (id),
  13. CLUSTERED INDEX gsi1 (c3)
  14. PARTITION BY KEY(c3)
  15. PARTITIONS 32,
  16. UNIQUE KEY uk1 (c5, c3, c1),
  17. KEY idx1 (c1),
  18. KEY idx2 (c5, c1, c8),
  19. KEY idx3 (c5, c3, c8)
  20. ) ENGINE = InnoDB PARTITION BY KEY(c1) PARTITIONS 32;

我们只需要对通义千问进行提问,描述以下需求,它就能自动生成一个存储过程:

写一个存储过程,为以下表生成100万条数据,其中,c1和c540位的十六进制字符串。(SQL内容省略了)

通义千问生成了这样的下面的存储过程:

  1. DELIMITER ;;
  2. CREATE PROCEDURE GenerateTestData()
  3. BEGIN
  4. DECLARE v_counter INT DEFAULT 0;
  5. DECLARE v_hex_string CHAR(40);
  6. WHILE v_counter < 1000000 DO
  7. -- 生成40位十六进制字符串
  8. SET v_hex_string = LPAD(LOWER(REPLACE(UUID(), '-', '')), 40, '0');
  9. INSERT INTO t2 (
  10. c1,
  11. c2,
  12. c3,
  13. c4,
  14. c5,
  15. c6,
  16. c7,
  17. c8,
  18. c9
  19. ) VALUES (
  20. -- 生成c1的十六进制字符串
  21. v_hex_string,
  22. -- 随机生成tinyint值(例如,范围从0255
  23. FLOOR(RAND() * 256),
  24. -- 生成c3的随机字符串(也可以是十六进制,这里仅作示例)
  25. LPAD(LOWER(REPLACE(UUID(), '-', '')), 32, '0'),
  26. -- 随机生成tinyint值
  27. FLOOR(RAND() * 256),
  28. -- 生成c5的十六进制字符串
  29. v_hex_string,
  30. -- 随机生成bigint值
  31. FLOOR(RAND() * POW(2, 63)),
  32. -- 随机生成bigint值
  33. FLOOR(RAND() * POW(2, 63)),
  34. -- 随机生成double值
  35. RAND(),
  36. -- 随机生成bigint值
  37. FLOOR(RAND() * POW(2, 63))
  38. );
  39. SET v_counter = v_counter + 1;
  40. END WHILE;
  41. END;;
  42. DELIMITER ;
  43. CALL GenerateTestData();

由于PolarDB-X对MySQL的语法兼容都非常高,我们无需对生成结果进行修改,直接粘贴到PolarDB-X中即可执行:

喝一杯茶,我们的测试数据就创建完成了:

欢迎关注,我们会带给大家更多PolarDB-X的最佳实践!


数据库PolarDB-X新人入门一站式页面,快速体验集中分布式一体化新特性!

云原生数据库PolarDB分布式版新人入门

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/234413
推荐阅读
相关标签
  

闽ICP备14008679号