基于flask框架的mysql水平分表实战

本文通过flask框架,结合monkey patch技术增强性能,实现动态创建MySQL水平分表功能。文章详细介绍了如何根据随机策略将数据插入分表,并展示查询所有分表数据的流程。关键涉及的技术包括monkey patch、JSON数据交互。
摘要由CSDN通过智能技术生成

功能描述:

       本文使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值