1、需要频繁select大量数据,时间长、消耗内存大,如何解决mysql性能问题?

如果对返回的结果数量没有要求,可以控制返回的数量:

cursor.fetchmany(size=1000)

这样是只返回1000条数据,如果返回的结果小于size,则返回所有数据;

如果你只需要一条,则更简单:fetchone()

2、每次插入的数据过大,MySQL server has gone away 如何解决?

存储为blob类型;

修改my.conf里:max_allowed_packet = 500m

3、要把python的list类型存入mysql,然后下次还需要以list格式读取,如何操作?

因为list类型里包含半角的逗号,或插入的数据里包含特殊符号,则不能正常插入mysql。

Google里有很多方法,我采取的是base64。将要插入的数据base64 encode可以正常存入Mysql。

base64str = base64.b64encode(str(mysqlstr))

mysqlstr = base64.b64decode(b64str)

注意:当你读取的时候,需要base64decode,这时得到的是str,则不能正常使用list序列取值。怎么办?

eval(string)

如上操作,eval可以很好的解决这个问题,把str变成tuple,就可以直接用了。

4、频繁操作Mysql更删查数据时,最好采用多线程操作数据库,避免因为my.conf配置问题带来的麻烦。

下面是一个Mysql多线程操作类:

 class MYSQL:
def __init__(self,sql):
self.sql = sql
self.conn = MySQLdb.connect(charset='utf8',user='yourname',passwd='passwd',db='your dbname')
self.cursor = self.conn.cursor() def insert(self):
self.cursor.execute(self.sql)
self.conn.commit()
self.cursor.close()
self.conn.close()
return True def select(self):
self.cursor.execute(self.sql)
alldata = self.cursor.fetchall()
self.cursor.close()
self.conn.close()
return alldata def update(self):
self.cursor.execute(self.sql)
self.conn.commit()
self.cursor.close()
self.conn.close()
return True

Python 频繁读取Mysql相关问题的更多相关文章

  1. python 使用流式游标 读取mysql怎么不会内存溢出

    使用过java读取mysql大数据量的人应该都知道,如果查询时不开游标不设置一次性区大小的话,会一次性的把所有记录都拉取过来再进行后续操作,数据量一大就很容易出现OOM 如果用python去读取mys ...

  2. python json及mysql——读取json文件存sql、数据库日期类型转换、终端操纵mysql及python codecs读取大文件问题

    preface: 近期帮师兄处理json文件,须要读到数据库里面,以备其兴许从数据库读取数据.数据是关于yelp站点里面的: https://github.com/Yelp/dataset-examp ...

  3. Python day7之mysql

    写在前面: 由于毕业论文撰写和答辩耽搁了几个月,但是在这几个月没有放弃学习Python,就是没有时间写博客.进行我们主要对数据库mysql的操作指令集的学习. 一.mysql术语 Mysql是最流行的 ...

  4. MySQL相关参数总结

    保留个原文链接,避免被爬虫爬了过去,以便后续更正补充:https://www.cnblogs.com/wy123/p/11273023.html MySQL参数繁多,是一个需要根据具体业务.软硬件环境 ...

  5. day06 python代码操作MySQL

    day06 python代码操作MySQL 今日内容 python代码操作MySQL 基于python与MySQL实现用户注册登录 python操作MySQL python 胶水语言.调包侠(贬义词& ...

  6. python 批量删除mysql前缀相同的表

    1,一般游戏log数据库会存储大量的玩家行为日志,一种行为一张表,每天生成一张新表,一天会有30+张不同行为的表,通常会保留玩家日志1年左右,对于超过1年的日志需要删除 2,log数据库一年会保存1W ...

  7. 读取mysql数据库的数据,转为json格式

    # coding=utf-8 ''' Created on 2016-10-26 @author: Jennifer Project:读取mysql数据库的数据,转为json格式 ''' import ...

  8. Python+Pandas 读取Oracle数据库

    Python+Pandas 读取Oracle数据库 import pandas as pd from sqlalchemy import create_engine import cx_Oracle ...

  9. Django读取Mysql数据并显示在前端

    一.首先按添加网页的步骤添加网页,我的网页名为table.html, app名为web table.html放到相应目录下, froms文件提前写好 修改views.py ? 1 2 3 4 5 6 ...

随机推荐

  1. 降低PNG图片存储大小方法、图片压缩方法

    降低PNG图片存储大小方法,图片压缩方法,如何降低PNG图片存储大小?前提是分辨率和尺寸大小不变,图形的透明部分不变.请看如下办法,亲测可用. 1. 将PNG图片用PS打开. 2. 图像-模式-8位/ ...

  2. 跨平台C++开源代码的两种常用编译方式

    作者:朱金灿 来源:http://blog.csdn.net/clever101 跨平台C++开源代码为适应各种编译器的编译,采用了两种方式方面来适配.一种是makefile方式.以著名的空间数据格式 ...

  3. Java 图形界面开发--图文并茂建立学生管理系统

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客) 图形用户界面(Graphics U ...

  4. Android View 背景选择器编写技巧

    在项目中选择器的使用是非常多的,以下是本人在项目中的一些常用的背景选择器的写法 带边框下划线背景选择器效果图: 上面布局中放了10个CheckBox,然后设置了CheckBox的背景图片位,背景选择器 ...

  5. shell中的-z

    -z 字符串为"null",即是指字符串长度为零.

  6. JNI工程搭建及编译

    JNI工程搭建及编译 建立Java工程 在具有C/C++比编译器的Eclipse中进行工程的创建,先创建一个简单的Java project,选项和一般同,这里仅仅需要将要调用的C/C++函数声明为na ...

  7. 线段树成段更新模板POJ3468 zkw以及lazy思想

    别人树状数组跑几百毫秒 我跑 2500多 #include<cstdio> #include<map> //#include<bits/stdc++.h> #inc ...

  8. WPF知识点全攻略04- XAML页面布局

    名称 说明 Canvas 使用固定坐标绝对定位元素 StackPanel 在水平或竖直方向放置元素 DockPanel 根据外部容器边界,自动调整元素 WrapPanel 在可换行的行中放置元素 Gr ...

  9. faster rcnn细节总结

    1.roi_pooling层是先利用spatial_scale将region proposal映射到feature map上,然后利用pooled_w.pooled_h分别将映射后的框的长度.宽度等分 ...

  10. 解决VS2013无法安装ArcObjects10.2的问题

    之前在网上看到的10.1在vs2012安装不上的问题,解决办法是改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\1 ...