zoukankan      html  css  js  c++  java
  • python3 构造数据

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    import mysql.connector
    import random
    import string
    import time
    #批量插的次数
    loop_count = 10000000
    #每次批量查的数据量
    batch_size = 100
    success_count = 0
    fails_count = 0
    #数据库的连接
    conn = mysql.connector.connect(host="127.0.0.1", user="root", password="jack", database="example")
    #cursor = conn.cursor()
    chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
    digits = '0123456789'
    def random_generate_string(length):
    return ('').join(random.sample(chars, length))
    def random_generate_number(length):
    if length > len(digits):
    digit_list = random.sample(digits, len(digits))
    digit_list.append(random.choice(digits))
    return digit_list.join('')
    return ('').join(random.sample(digits, length))
    def random_generate_data(num):
    c = [num]
    phone_num_seed = 13100000000
    def _random_generate_data():
    c[0] += 1

    data = (
    c[0],
    "last_name_" + str(random.randrange(100000)),
    "first_name_" + str(random.randrange(100000)),
    random.choice('MF'),
    random.randint(1, 120),
    phone_num_seed + c[0],
    random_generate_string(20),
    random_generate_string(10),
    time.strftime("%Y-%m-%d %H:%M:%S")
    )
    return data

    return _random_generate_data()

    def execute_many(insert_sql, batch_data):
    global success_count, fails_count
    cursor = conn.cursor()
    try:
    cursor.executemany(insert_sql, batch_data)
    except Exception as e:
    conn.rollback()
    fails_count = fails_count + len(batch_data)
    print (e)
    raise
    else:
    conn.commit()
    success_count = success_count + len(batch_data)
    print (str(success_count) + " commit")
    finally:
    cursor.close()
    try:
    #user表列的数量
    column_count = 9

    #插入的SQL
    insert_sql = "replace into user(id, last_name, first_name, sex, age, phone, address, password, create_time) values (" + ",".join([ "%s" for x in range(column_count)]) + ")"
    batch_count = 0
    begin_time = time.time()
    for x in range(loop_count):
    batch_count = x * batch_size
    gen_fun = random_generate_data(batch_count)

    batch_data = [gen_fun for x in range(batch_size)]
    execute_many(insert_sql, batch_data)
    end_time = time.time()
    total_sec = end_time - begin_time
    qps = success_count / total_sec
    print ("总共生成数据: " + str(success_count))
    print ("总共耗时(s): " + str(total_sec))
    print ("QPS: " + str(qps))
    except Exception as e:
    print (e)
    raise
    else:
    pass
    finally:
    pass

  • 相关阅读:
    Gitlab安装与备份恢复
    Logstash使用grok插件解析Nginx日志
    SSH登录启用Google二次身份验证
    Nginx隐藏标识以及其版本号
    Nginx虚拟目录设置
    Tomcat虚拟目录设置
    sqlserver无法连接
    Howto: 如何将ArcGIS Server缓存移动到新服务器
    优酷网架构学习笔记
    .net中自定义过滤器对Response内容进行处理
  • 原文地址:https://www.cnblogs.com/jackbo/p/7245457.html
Copyright © 2011-2022 走看看