功能描述:
本文使用flask框架,包括框架基本的monkey patch猴子补丁实现的高性能协程补丁,flask接收http json参数及返回json参数的数据交互方式等基本框架技术;在此框架之上实现动态的创建mysql水平分表功能,根据随机的方式将数据插入到分表中,及查询所有分表数据的功能。
在mysql中,当单个表的数据量过大时,可以采用分表的方式将数据放入多个分表中,以提升数据的查询速度
环境:
mysql:V5.5.53
python框架:flask
关键技术:monkey patch、json
代码实例:
from flask import Flask, request, jsonify
from gevent import monkey
from gevent import pywsgi
import pymysql
import re
import random
import json
monkey.patch_all(thread=False) # 使用猴子补丁,将真个应用转变为协程的方式运行,提高并发性能,thread=False使多线程不阻塞
app = Flask(__name__)
def execute_sql(sql): # 执行sql,并返回结果
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='test', port=3306, charset='utf8')
cur = conn.cursor()
cur.execute(sql)
result = cur.fetchall()
cur.close()
conn.close()
return result
def execute_sql_in_session(sql, sql2): # 同一个事物中执行多个sql
try:
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='test', port=3306, charset='utf8')
cur = conn.cursor()
cur.execute(sql)
cur.execute(sql2)
conn.commit()
except Exception as e:
print(str(e))
conn.rollback()
f