Bagaimana untuk Mendapatkan Dataset Besar dengan Cekap dari MySQL dalam Potongan?

Patricia Arquette
Lepaskan: 2024-10-26 01:51:28
asal
102 orang telah melayarinya

How to Efficiently Retrieve Large Datasets from MySQL in Chunks?

Mengambil Data Besar daripada MySQL dalam Ketulan untuk Prestasi Dipertingkat

Apabila berurusan dengan pilihan MySQL yang besar dengan berjuta-juta baris, isu dengan kekangan memori boleh timbul semasa pengambilan data. Artikel ini meneroka penyelesaian kepada cabaran ini dengan menggunakan ciri LIMIT untuk mendapatkan semula data dalam bahagian yang boleh diurus.

Untuk mendapatkan semula set data besar secara berulang, ciri LIMIT boleh digunakan. Dengan menentukan baris permulaan dan bilangan maksimum baris untuk diambil, kami boleh memecahkan proses pemilihan kepada subset yang lebih kecil. Sebagai contoh, melaksanakan pertanyaan berikut:

SELECT * FROM MyTable ORDER BY whatever LIMIT 0,1000
Salin selepas log masuk

akan mengambil 1,000 baris pertama. Untuk mendapatkan semula set 1,000 baris berikutnya, kami boleh mengeluarkan pertanyaan serupa dengan nilai LIMIT yang dilaraskan, seperti:

SELECT * FROM MyTable ORDER BY whatever LIMIT 1000,1000 -- rows 1,001 - 2,000
SELECT * FROM MyTable ORDER BY whatever LIMIT 2000,1000 -- rows 2,001 - 3,000
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini tidak menjamin susunan baris yang konsisten disebabkan kemungkinan perubahan dalam jadual semasa proses mendapatkan semula. Untuk menangani perkara ini, kita boleh membuat jadual sementara dahulu dan mengisinya dengan hasil tersusun:

CREATE TEMPORARY TABLE MyChunkedResult AS (
  SELECT *
  FROM MyTable
  ORDER BY whatever
);
Salin selepas log masuk

Ini memastikan susunan baris kekal utuh semasa kami mendapatkannya dalam beberapa bahagian:

SELECT * FROM MyChunkedResult LIMIT 0, 1000;
SELECT * FROM MyChunkedResult LIMIT 1000,1000;
SELECT * FROM MyChunkedResult LIMIT 2000,1000;
.. and so on.
Salin selepas log masuk

Untuk menentukan baris permulaan yang sesuai bagi setiap bahagian dan untuk menyemak penghujung hasil, logik tersuai boleh dilaksanakan. Adalah disyorkan untuk menggunakan saiz ketulan yang jauh lebih besar daripada 1,000 rekod untuk mengoptimumkan prestasi.

Setelah melengkapkan pengambilan data, adalah dinasihatkan untuk menggugurkan jadual sementara untuk pengurusan sumber:

DROP TEMPORARY TABLE MyChunkedResult;
Salin selepas log masuk

Mengguna pakai pengambilan semula chunk ini pendekatan meningkatkan prestasi dengan ketara dan membolehkan pengekstrakan set data MySQL yang besar dengan jayanya.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Dataset Besar dengan Cekap dari MySQL dalam Potongan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
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!