1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

Python载入MymySQL的三种形式详细说明

Python全自动载入MySQL数据信息

大家好,我是本际云服务器推荐网的小编小本本。在工作中,Python读取数据信息全自动载入MySQL是一个非常普遍的需求,它可以提高操作数据库的读写能力。而且,无论使用哪种数据库系统,如MongoDB或ES,解决构思都是相似的,只需将操作数据库的词法拆换就可以实现。下面,我将与大家分享数据信息怎样载入到MySQL的两种情景和三种形式。

Python载入MymySQL的三种形式详细说明

情景一:数据信息不用频繁地载入MySQL

对于这种情况,我们可以使用navicat工具的导入功能来完成。这种方式适用各种文件类型,能够根据文件的字段名全自动建表,还可以在已经有表格中插入数据,非常简单方便。

情景二:信息是增加量的,需要自动化技术并经常载入MySQL

在这种情况下,我们可以通过以下两种方式实现:

方式一:Python + pymysql库

这种方式可以通过组装pymysql命令来实现。首先安装pymysql库,然后编写以下代码:

import pymysql

# 数据库服务器数据
conn=pymysql.connect(
host='127.0.0.1',
user='root',
passwd='wangyuqing',
db='test01',
port=3306,
charset="utf8")

# 分层解决
big_size=100000

# 分层赋值载入到MySQL
with pd.read_csv('./tianchi_mobile_recommend_train_user.csv',chunksize=big_size) as reader:
    for df_in_reader in reader:
        datas=[]
        print('解决:',len(df))
        for i,j in df_in_reader.iterrows():
            data=(j['user_id'],j['item_id'],j['behavior_type'],
                  j['item_category'],j['time'])
            datas.append(data)
        _values=",".join(['%s',]*5)
        sql="""insert into users(user_id,item_id,behavior_type,
        item_category,time)values(%s)"""%_values
        cursor=conn.cursor()
        cursor.executemany(sql,datas)
        conn.commit()

# 关闭服务
conn.close()
cursor.close()
print('存进成功!')

方式二:Pandas + sqlalchemy

这种方式需要引入sqlalchemy来支持SQL,可以实现全部普遍数据库类型的查看、升级等操作。编写以下代码:

from sqlalchemy import create_engine

engine=create_engine('mysql+pymysql://root:wangyuqing@localhost:3306/test01')

data=pd.read_csv('./tianchi_mobile_recommend_train_user.csv')
data.to_sql('user02',engine,chunksize=100000,index=None)

print('存进成功!')

归纳

根据实际测试结果,使用Pandas + sqlalchemy的方式只需五行属性编码就可以完成MySQL数据信息的载入,而且只需要四分钟,比使用Python + pymysql库的方式效率更高。此外,使用方式一需要提前建表,而方式二则不需要。

综上所述,这篇文章介绍了数据信息如何通过navicat导入、Python + pymysql库、Pandas + sqlalchemy三种方式全自动载入MySQL。建议大家使用Pandas + sqlalchemy这种快捷方便、工作效率高的方式。如果数据量相对较大而速度比较慢,可以选择添加线程同步、调整分层大小等优化措施。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6642.html