系统上线前需要做数据压力测试,需要模拟插入大量数据模拟真实数据量,本人学识浅,只能用shell做,尽管shell效率低。
表中有字段关联关系,我这边基本思想就是把关联表的字段值全部放到一个数组中,然后随机读取某个值插入新表,这样新表的字段值都会对应在基层表的字段值。
mysql中有个函数group_concat 使用这个函数可以列出所有字段,默认分隔符是","。使用这个函数就可以给数组赋值
A=(`mysql -uroot -proot -e 'use test;select group_concat(id separator " ") from tb1' | sed -n 2p`) 这个语句表示把表tb1中id字段所有值存在数组A中,数组元素使用空格作为分隔符,使用sed是去除警告信息。
当然如果数据量比较大,可以通过设置 group_concat_max_len 这个参数值,默认是1024 。最大可以设置 4294967295 。这样就算表字段值比较多也可以全部列到数组中。
表中有字段关联关系,我这边基本思想就是把关联表的字段值全部放到一个数组中,然后随机读取某个值插入新表,这样新表的字段值都会对应在基层表的字段值。
mysql中有个函数group_concat 使用这个函数可以列出所有字段,默认分隔符是","。使用这个函数就可以给数组赋值
A=(`mysql -uroot -proot -e 'use test;select group_concat(id separator " ") from tb1' | sed -n 2p`) 这个语句表示把表tb1中id字段所有值存在数组A中,数组元素使用空格作为分隔符,使用sed是去除警告信息。
当然如果数据量比较大,可以通过设置 group_concat_max_len 这个参数值,默认是1024 。最大可以设置 4294967295 。这样就算表字段值比较多也可以全部列到数组中。