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

情景一:数据信息不用频繁地载入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
