Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Dataset Besar dengan Cekap dari MySQL dalam Potongan?
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
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
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 );
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.
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;
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!