import pymysql
import traceback
from multiprocessing import Pool,Manager,cpu_count
from multiprocessing.managers import BaseManager
import os,sys,time
import random # 建库建表
def createTable():
conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
passwd='',
)
cur=conn.cursor()
sql_database='create database if not exists py3_userinfo default charset utf8 collate utf8_general_ci;'
sql_table='''
create table student(
id int not null auto_increment,
name varchar(20) not null,
age int default 0,
tel varchar(13) unique not null,
primary key(id)
)engine=innodb character set utf8;
'''
try:
# 建库
cur.execute(sql_database)
conn.select_db('py3_userinfo')
cur.execute('drop table if exists student;')
# 建表
cur.execute(sql_table)
except Exception as e:
print(e)
else:
print('数据库及表创建成功!')
cur.close()
conn.close() class MyMysql(object):
def __init__(self):
# 数据库连接
self.conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
passwd='',
db='py3_userinfo',
charset='utf8'
)
# 游标
self.cur = self.conn.cursor() def executeSql(self,sql):
try:
res=self.cur.execute(sql)
print('执行sql受影响的行数:',res)
self.conn.commit()
except:
traceback.print_exc() def quit(self):
self.cur.close()
self.conn.commit()
self.conn.close() class MyManager(BaseManager):
pass def my_Manager():
m=MyManager()
m.start()
return m # 把myMysql类注册到MyManager管理类中
MyManager.register('MyMysql',MyMysql) def run(my_sql):
print('subprocess is ',os.getpid())
# 造数据
name = 'ha'+str(random.randint(1,100))+'_'+str(os.getpid())
age = random.randint(1,100)
# emil=name+'@qq.com'
tel=''+str(random.choice([3,5,7,8]))+str(random.random())[2:11]
sql="insert into student(name,age,tel) values('%s','%s','%s')"%(name,age,tel)
my_sql.executeSql(sql) if __name__ == '__main__':
createTable() manager=my_Manager()
my_sql=manager.MyMysql() print('Parent process ',os.getpid())
p=Pool(cpu_count())
n=10
for i in range(n):
p.apply(run,args=(my_sql,))
p.close()
p.join()
print('all subprocess done!')
my_sql.quit()

python多进程并发插入mysql数据的更多相关文章

  1. python插入mysql数据(2)

    python插入mysql数据(2) """插入操作""" import pymysql import datetime from pymy ...

  2. Python多进程并发(multiprocessing)用法实例详解

    http://www.jb51.net/article/67116.htm 本文实例讲述了Python多进程并发(multiprocessing)用法.分享给大家供大家参考.具体分析如下: 由于Pyt ...

  3. python多进程并发和多线程并发和协程

    为什么需要并发编程? 如果程序中包含I/O操作,程序会有很高的延迟,CPU会处于等待状态,这样会浪费系统资源,浪费时间 1.Python的并发编程分为多进程并发和多线程并发 多进程并发:运行多个独立的 ...

  4. python 多进程并发与多线程并发

    本文对python支持的几种并发方式进行简单的总结. Python支持的并发分为多线程并发与多进程并发(异步IO本文不涉及).概念上来说,多进程并发即运行多个独立的程序,优势在于并发处理的任务都由操作 ...

  5. python 基础 9.3 mysql 数据操作

    #/usr/bin/python #coding=utf-8 #@Time   :2017/11/21 0:20 #@Auther :liuzhenchuan #@File   :mysql 数据操作 ...

  6. Python多进程并发操作进程池Pool

    目录: multiprocessing模块 Pool类 apply apply_async map close terminate join 进程实例 multiprocessing模块 如果你打算编 ...

  7. python多进程并发redis

    Redis支持两种持久化方式RDB和AOF,RDB持久化能够快速的储存和回复数据,但在服务器停机时会丢失大量数据,AOF持久化能够高效的提高数据的安全性,但在储存和恢复数据方面要耗费大量的时间,最好的 ...

  8. [转]Python多进程并发操作中进程池Pool的应用

    Pool类 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量的时间.如果操作的对象数目不大时,还可以直接使用Process类动态的生成多个进程,十 ...

  9. Python多进程并发操作中进程池Pool的应用

    Pool类 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量的时间.如果操作的对象数目不大时,还可以直接使用Process类动态的生成多个进程,十 ...

随机推荐

  1. 20189220 余超《Linux内核原理与分析》第八周作业

    Linux内核如何装载和启动一个可执行程序 本章知识点 ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files) ...

  2. epoll 或者 kqueue 的原理是什么?

    来自知乎:http://www.zhihu.com/question/20122137 epoll 或者 kqueue 的原理是什么? 为什么epoll和kqueue可以用基于事件的方式,单线程的实现 ...

  3. react项目如何运行

    react项目如何运行 一.总结 一句话总结: npm i 安装好package.json的 指定插件后,npm start 启动项目 二.react项目的安装与运行 转自或参考:react项目的安装 ...

  4. Java_jdbc 基础笔记之六 数据库连接 (PreparedStatement)

    reparedStatement 是 Statement 的子接口 * ①需要预编译 SQL 语句:PreparedStatement ps = conn.preparedStatement(sql) ...

  5. mysql 中 int 等类型如何选择

    详见:https://blog.csdn.net/samll_snail/article/details/86534719 .

  6. MongoDB学习(附录一) 安装mongodb3.6时碰到的问题

    1.Installing MongoDB Compass...(this may take a few minutes)这一步,会停留很长时间,点击取消可能也取消不了. 安装mongdodb ,进度卡 ...

  7. git初次登陆使用

    一. 安装git 二. 在当前项目根目录点击鼠标右键,出来下图: 点击进入git命令行界面. 三.初始化项目 git init 四. 添加所有文件到项目中 git add . 五. 尝试提交所有文件 ...

  8. [LeetCode] 451. Sort Characters By Frequency 根据字符出现频率排序

    Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ...

  9. mysql类型转换函数convert与cast的用法

    原文地址:https://blog.csdn.net/kouwoo/article/details/45535733 简单介绍下mysql数据库中用于类型转换的二个函数,convert与cast函数, ...

  10. jinja 模板渲染路径坑

    路径中不能用上一级目录../