Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengimport Fail MySQL Besar dengan Cekap ke Hosting Dikongsi Menggunakan PHP?

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

Susan Sarandon
Susan Sarandonasal
2024-10-28 10:17:02244semak imbas

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>

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!

Kenyataan:
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