Bagaimana untuk Mengimport Fail MySQL Besar dengan Cekap ke Hosting Dikongsi Menggunakan PHP?

Susan Sarandon
Lepaskan: 2024-10-28 10:17:02
asal
243 orang telah melayarinya

How to Efficiently Import Large MySQL Files into Shared Hosting Using PHP?

Import Fail MySQL yang Cekap dalam PHP: Memisahkan Pertanyaan untuk Pengehosan Dikongsi

Dalam bidang pembangunan web, keperluan untuk mengimport fail pangkalan data yang besar semasa menggunakan penyedia pengehosan kongsi lazimnya timbul. Malangnya, mengakses MySQL melalui baris arahan mungkin dihadkan, memerlukan penyelesaian berasaskan PHP untuk menghurai dan melaksanakan pertanyaan.

Untuk menangani cabaran ini, fungsi teguh yang dikenali sebagai SplitSQL() telah dibangunkan untuk membahagikan dengan pasti fail pangkalan data ke dalam pertanyaan individu tanpa menggunakan memori yang berlebihan.

Cara Ia Berfungsi

SplitSQL() memanfaatkan pendekatan membaca fail, berulang melalui fail baris demi baris. Ia mengenal pasti pertanyaan dengan mengesan pembatas yang ditentukan (; secara lalai) pada penghujung baris. Sebaik sahaja pertanyaan lengkap dipasang, ia dilaksanakan serta-merta menggunakan mysql_query().

Ciri Utama

  • Memori-cekap: Dengan mengelakkan keperluan untuk memuatkan keseluruhan fail ke dalam memori, SplitSQL() sesuai untuk mengendalikan fail besar tanpa isu prestasi.
  • Toleransi kesalahan: Jika pertanyaan gagal, mesej ralat dipaparkan untuk tujuan nyahpepijat.
  • Penimbalan output: Untuk mengelakkan keletihan memori, SplitSQL() mengepam output selepas setiap pelaksanaan pertanyaan.

Contoh Penggunaan

<code class="php">function SplitSQL($file, $delimiter = ';')
{
    set_time_limit(0);

    if (is_file($file) === true)
    {
        $file = fopen($file, 'r');

        if (is_resource($file) === true)
        {
            $query = array();

            while (feof($file) === false)
            {
                $query[] = fgets($file);

                if (preg_match('~' . preg_quote($delimiter, '~') . '\s*$~iS', end($query)) === 1)
                {
                    $query = trim(implode('', $query));

                    if (mysql_query($query) === false)
                    {
                        echo '<h3>ERROR: ' . $query . '</h3>' . "\n";
                    }

                    else
                    {
                        echo '<h3>SUCCESS: ' . $query . '</h3>' . "\n";
                    }

                    while (ob_get_level() > 0)
                    {
                        ob_end_flush();
                    }

                    flush();
                }

                if (is_string($query) === true)
                {
                    $query = array();
                }
            }

            return fclose($file);
        }
    }

    return false;
}

// Test data
$file = '/path/to/db_dump.sql';
SplitSQL($file);</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengimport Fail MySQL Besar dengan Cekap ke Hosting Dikongsi Menggunakan PHP?. 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!