最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 讀取千萬級(jí)數(shù)據(jù)自動(dòng)寫入 MySQL 數(shù)據(jù)庫

 更新時(shí)間:2022年06月28日 17:04:30   作者:python2021_  
這篇文章主要介紹了Python 讀取千萬級(jí)數(shù)據(jù)自動(dòng)寫入 MySQL 數(shù)據(jù)庫,本篇文章會(huì)給大家系統(tǒng)的分享千萬級(jí)數(shù)據(jù)如何寫入到 mysql,分為兩個(gè)場(chǎng)景,兩種方式

前言

Python 讀取數(shù)據(jù)自動(dòng)寫入 MySQL 數(shù)據(jù)庫,這個(gè)需求在工作中是非常普遍的,主要涉及到 python 操作數(shù)據(jù)庫,讀寫更新等,數(shù)據(jù)庫可能是 mongodb、 es,他們的處理思路都是相似的,只需要將操作數(shù)據(jù)庫的語法更換即可。本篇文章會(huì)給大家系統(tǒng)的分享千萬級(jí)數(shù)據(jù)如何寫入到 mysql,分為兩個(gè)場(chǎng)景,兩種方式。

場(chǎng)景一:數(shù)據(jù)不需要頻繁的寫入mysql

使用 navicat 工具的導(dǎo)入向?qū)Чδ?。支持多種文件格式,可以根據(jù)文件的字段自動(dòng)建表,也可以在已有表中插入數(shù)據(jù),非??旖莘奖恪?/p>

場(chǎng)景二:數(shù)據(jù)是增量的,需要自動(dòng)化并頻繁寫入mysql

測(cè)試數(shù)據(jù):csv 格式 ,大約 1200萬行

import pandas as pd
data = pd.read_csv('./tianchi_mobile_recommend_train_user.csv')
data.shape

打印結(jié)果:

方式一:python ? pymysql 庫

安裝 pymysql 命令:

pip?install?pymysql

代碼實(shí)現(xiàn):

import pymysql
# 數(shù)據(jù)庫連接信息
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:
        datas = []
        print('處理:',len(df))
#         print(df)
        for i ,j in df.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()
 # 關(guān)閉服務(wù)
conn.close()
cursor.close()
print('存入成功!')

方式二:pandas ? sqlalchemy:pandas需要引入sqlalchemy來支持sql,在sqlalchemy的支持下,它可以實(shí)現(xiàn)所有常見數(shù)據(jù)庫類型的查詢、更新等操作。

代碼實(shí)現(xiàn):

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('存入成功!')

總結(jié)

pymysql 方法用時(shí)12分47秒,耗時(shí)還是比較長(zhǎng)的,代碼量大,而 pandas 僅需五行代碼就實(shí)現(xiàn)了這個(gè)需求,只用了4分鐘左右。最后補(bǔ)充下,方式一需要提前建表,方式二則不需要。所以推薦大家使用第二種方式,既方便又效率高。如果還覺得速度慢的小伙伴,可以考慮加入多進(jìn)程、多線程。

最全的三種將數(shù)據(jù)存入到 MySQL 數(shù)據(jù)庫方法:

  • 直接存,利用 navicat 的導(dǎo)入向?qū)Чδ?/li>
  • Python pymysql
  • Pandas sqlalchemy

到此這篇關(guān)于Python 讀取千萬級(jí)數(shù)據(jù)自動(dòng)寫入 MySQL 數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Python 讀取數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于python實(shí)現(xiàn)百度翻譯功能

    基于python實(shí)現(xiàn)百度翻譯功能

    這篇文章主要介紹了基于python實(shí)現(xiàn)百度翻譯功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Python實(shí)現(xiàn)透明數(shù)字時(shí)鐘效果

    Python實(shí)現(xiàn)透明數(shù)字時(shí)鐘效果

    這篇文章主要為大家詳細(xì)介紹了一個(gè)使用 Python 和 Tkinter 庫實(shí)現(xiàn)的透明數(shù)字時(shí)鐘應(yīng)用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2025-02-02
  • 服務(wù)器端jupyter notebook映射到本地瀏覽器的操作

    服務(wù)器端jupyter notebook映射到本地瀏覽器的操作

    這篇文章主要介紹了服務(wù)器端jupyter notebook映射到本地瀏覽器的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • pandas中DataFrame.to_dict()的實(shí)現(xiàn)示例

    pandas中DataFrame.to_dict()的實(shí)現(xiàn)示例

    本文主要介紹了pandas中DataFrame.to_dict()的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • Python簡(jiǎn)單過濾字母和數(shù)字的方法小結(jié)

    Python簡(jiǎn)單過濾字母和數(shù)字的方法小結(jié)

    這篇文章主要介紹了Python簡(jiǎn)單過濾字母和數(shù)字的方法,涉及Python基于內(nèi)置函數(shù)與正則表達(dá)式進(jìn)行字母和數(shù)字過濾的相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • 使用Matplotlib創(chuàng)建自定義可視化圖表的方法小結(jié)

    使用Matplotlib創(chuàng)建自定義可視化圖表的方法小結(jié)

    Matplotlib 是 Python 中最流行的繪圖庫之一,它提供了豐富的功能和靈活性,使用戶能夠創(chuàng)建各種類型的可視化圖表,本文將介紹如何使用 Matplotlib 中的各種功能和技巧來創(chuàng)建自定義的可視化圖表,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • python實(shí)現(xiàn)雙色球隨機(jī)選號(hào)

    python實(shí)現(xiàn)雙色球隨機(jī)選號(hào)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)雙色球隨機(jī)選號(hào),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • Python 執(zhí)行矩陣與線性代數(shù)運(yùn)算

    Python 執(zhí)行矩陣與線性代數(shù)運(yùn)算

    這篇文章主要介紹了Python 執(zhí)行矩陣與線性代數(shù)運(yùn)算,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • pytorch 自定義卷積核進(jìn)行卷積操作方式

    pytorch 自定義卷積核進(jìn)行卷積操作方式

    今天小編就為大家分享一篇pytorch 自定義卷積核進(jìn)行卷積操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python隨機(jī)值生成的常用方法總結(jié)

    Python隨機(jī)值生成的常用方法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了Python中隨機(jī)值生成的一些常用方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以了解一下
    2022-10-10

最新評(píng)論

观塘区| 鹤岗市| 普兰店市| 堆龙德庆县| 北安市| 邻水| 黎平县| 特克斯县| 和硕县| 自治县| 宾阳县| 金乡县| 兴国县| 彰武县| 金阳县| 岐山县| 嘉禾县| 屯留县| 建平县| 温州市| 庆安县| 松江区| 红桥区| 壶关县| 哈密市| 吴桥县| 大丰市| 偏关县| 福安市| 灵山县| 苍溪县| 梁河县| 邵东县| 贵港市| 大同市| 界首市| 滁州市| 新竹市| 阿克陶县| 武强县| 罗江县|