FUCK, 排查python写入mysql数据库过慢的过程(心都碎了)

最近写了一个程序,实时读取rsyslog日志,但是遇到一个问题:mysql插入速度存在延时,速度非常慢,于是开始了排查;

1. 分析程序,将认为比较耗时的地方进行线程分析,无效;

2. 按照网上说的,多行插入,commit都没有效果;

3. 重装mysql驱动,无效;

4. 编写简单的测试语句插入数据库,发现较慢,进一步在mysql中执行sql语句发现较慢,确定是mysql的问题;

5. 查看mysql的日志大小,以及目录空间,发现都没有问题,排除;

6. 关闭myql的bin选项,发现插入速度快了将近一半,可是还是不能接受,这也不是正确的做法;

7. 最后想到是否是磁盘的IO负载过高?排查时发现磁盘的IO速度非常慢,才100多兆,初步定位应该是该问题;

8. 切换mysql 的数据目录到ssd,发现问题解决,原来是磁盘的IO太慢导致的插入速度过慢。

当然了,上面的问题可能是个案,如果大家各种方法都排出了,不妨看下是否是我遇到的问题。

时间: 2024-08-08 22:07:19

FUCK, 排查python写入mysql数据库过慢的过程(心都碎了)的相关文章

python爬虫:爬取易迅网价格信息,并写入Mysql数据库

本程序涉及以下方面知识: 1.python链接mysql数据库:http://www.cnblogs.com/miranda-tang/p/5523431.html   2.爬取中文网站以及各种乱码处理:http://www.cnblogs.com/miranda-tang/p/5566358.html   3.BeautifulSoup使用 4.原网页数据信息不全用字典的方式,把不存在的字段设置为空 详细代码: #!/usr/bin/python # -*- encoding:utf-8 -*

python使用mysql数据库

一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,我们只需要通过一个命令就可以下载安装: Ubuntu\deepin >>sudo apt-get install mysql-server >>Sudo apt-get install  mysql-client centOS/redhat >

使用python操作mysql数据库

这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector-python 是MySQL官方的Python驱动 https://dev.mysql.com/doc/connector-python/en/ 安装: pip install mysql-connector 示例代码: https://github.com/mike-zhang/pyExample

使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据

应用场景: 我们需要设计一个数据库来保存多个文档中每个文档的关键字.假如我们每个文档字符都超过了1000,取其中出现频率最大的为我们的关键字. 假设每个文档的关键字都超过了300,每一个文件的0-299号存储的是我们的关键字.那我们要建这样一个数据库,手动输入这样的一个表是不现实的,我们只有通过程序来帮我实现这个重复枯燥的操作. 具体的示意图如下所示: 首先图1是我们的原始表格: 图1 这个时候我们需要程序来帮我们完成自动字段的创建和数据的插入. 图2 上图是我们整个表的概况.下面我们就用程序来

python使用mysql数据库(转)

一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,我们只需要通过一个命令就可以下载安装: Ubuntu\deepin >>sudo apt-get install mysql-server >>Sudo apt-get install  mysql-client centOS/redhat >

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy [python] view plain copy print? import pandas as pd from sqlalchemy import create_engine ##将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理 yconnect = create_engine('mysql+mysql

Python使用MySQL数据库(新)(转)

http://www.cnblogs.com/fnng/p/3565912.html 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,我们只需要通过一个命令就可以下载安装: Ubuntu\deepin >>sudo apt-get install mysql-server >>Sudo apt-g

Python与Mysql 数据库的连接,以及查询。

python与mysql数据库的连接: pymysql是python中对数据库的连接模块:因此应当首先安装pymysql数据库模块. 执行pip install pymysql 命令. 然后在python 中创建数据库连接表: import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset='

python操作mysql数据库

连接数据库 输入值 存入数据库 关闭 import string import mysql.connector conn=mysql.connector.connect(user='root',password='test',database='dalian',use_unicode=True) cursor=conn.cursor() a=raw_input('enter an id: ') b=raw_input('enter a name: ') while(a!='quit' or b!