Membaca Berjuta-juta Baris Data SQL dengan Cekap dengan Python

WBOY
Lepaskan: 2024-07-18 17:57:42
asal
720 orang telah melayarinya

Efficiently Reading Millions of Rows of SQL Data with Python

Bekerja dengan set data yang besar dalam SQL boleh menjadi mencabar, terutamanya apabila anda perlu membaca berjuta-juta baris dengan cekap. Berikut ialah pendekatan mudah untuk mengendalikan perkara ini menggunakan Python, memastikan pemprosesan data anda kekal berprestasi dan terurus.

Menyelesaikan Projek Data Besar dan Sains Data Hujung ke Hujung

Gunakan Pemacu Pangkalan Data yang Cekap

Python mempunyai beberapa pemacu pangkalan data seperti psycopg2 untuk PostgreSQL, mysql-connector-python untuk MySQL dan sqlite3 untuk SQLite. Pilih pemacu yang paling sesuai dengan pangkalan data anda.

import mysql.connector

connection = mysql.connector.connect(
    host="your_host",
    user="your_username",
    password="your_password",
    database="your_database"
)
cursor = connection.cursor()
Salin selepas log masuk

Ambil Data dalam Potongan

Mengambil berjuta-juta baris sekaligus boleh mengatasi ingatan anda. Sebaliknya, ambil data dalam ketulan yang boleh diurus menggunakan gelung. Kaedah ini memastikan penggunaan memori rendah dan mengekalkan prestasi.

chunk_size = 10000
offset = 0

while True:
    query = f"SELECT * FROM your_table LIMIT {chunk_size} OFFSET {offset}"
    cursor.execute(query)
    rows = cursor.fetchall()

    if not rows:
        break

    process_data(rows)
    offset += chunk_size
Salin selepas log masuk

Proses Data Dengan Cekap

Pastikan pemprosesan data anda dalam fungsi process_data adalah cekap. Elakkan pengiraan yang tidak perlu dan manfaatkan operasi bervektor dengan perpustakaan seperti NumPy atau Pandas.

import pandas as pd

def process_data(rows):
    df = pd.DataFrame(rows, columns=['col1', 'col2', 'col3'])
    # Perform operations on the DataFrame
    print(df.head())
Salin selepas log masuk

Gunakan Pengumpulan Sambungan

Untuk tugasan berulang, pengumpulan sambungan boleh membantu mengurus sambungan pangkalan data dengan cekap. Perpustakaan seperti SQLAlchemy menyediakan penyelesaian pengumpulan yang mantap.

from sqlalchemy import create_engine

engine = create_engine("mysql+mysqlconnector://user:password@host/dbname")
connection = engine.connect()

chunk_size = 10000
offset = 0

while True:
    query = f"SELECT * FROM your_table LIMIT {chunk_size} OFFSET {offset}"
    result_proxy = connection.execute(query)
    rows = result_proxy.fetchall()

    if not rows:
        break

    process_data(rows)
    offset += chunk_size
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh membaca dan memproses berjuta-juta baris data SQL dengan cekap menggunakan Python. Pendekatan ini memastikan aplikasi anda kekal responsif dan berprestasi, walaupun semasa berurusan dengan set data yang besar.

Atas ialah kandungan terperinci Membaca Berjuta-juta Baris Data SQL dengan Cekap dengan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!