PHP – Import velké databáze

Kategorie:

Štítky:

Před nějakou dobou jsem tu psal, že jsem přebral do správy stránky K213.cz a protože jejich provozovatelé nechtěli dalšího webhostera vystavit nátlaku policie (alespoň takové informace jsem dostal k minulému stěhování), rozhodli se pro přestěhování na hosting mimo ČR. Překopírovat PHP scripty nebyl zásadní problém, ani rozsáhlé přílohy, na to postačoval běžný protokol ftp, využil jsem opět svého oblíbeného klienta gFTP.

Problém stěhování se jmenoval velká databáze, dump aktuálního stavy MySQL měl zhruba 28 MB, což je něco, co z počítače rozhodně na hosting nedostanete s využitím standardních nástrojů webhostingů (phpMyAdmin, phpMiniAdmin, …). Narazíte na omezení maximální velikosti dat odeslaných na webhosting pomocí formuláře, vcelku časté omezení je na 2 MB a dělit SQL script na 14 souborů by bylo velmi zdlouhavé.

Reklama

Nechtělo se mi vymýšlet vymyšlené, tak jsem hledal rozumný postup, kterak naimportovat opravdu velikou databázi. Našel jsem script BigDump, napsaný v PHP, který vypadal, že by mi mohl pomoci. Script prostě funguje, import databáze spočíval pouze v editaci připojovacích údajů ve scriptu, které jsou mezi řádky 40—44, nastavení souboru SQL dumpu (který může být v souboru .sql, nebo sbalený .gz) na řádku 47 a nakonec kódování databáze na řádku 52 (dnes tam budete nejčastěji psát „utf8“). No nakonec jsem script spustil, v tomto případě jsem zadal do adresního řádku prohlížeče „http://www.k213.cz/import/bigdump.php“, jednou klikl pro začátek importu a během několika sekund bylo 28 MB naimportováno. Pochopitelně, že jsem importní adresář ihned vymazal, aby mi jej někdo nemohl spustit znovu :-).

Doufám, že ctěný čtenář tohoto článku nebude zklamán tím, že jsem nepopisoval přesný postup importu takto velkého souboru, ale jen jsem se zmínil o nalezeném řešení. Pochopitelně, že script jako takový teď prostuduji a pokud z něj dokáži využít nějakou rozumnou myšlenku, zaimplementuji ji do mého frameworku.

Pokud Vám script také pomůže, bylo by velmi slušné jeho autora odměnit alespoň několika US$ přes PayPal.com.

Poznámka (2010): Článek je tu jen historických důvodů, očistil jsem jej o několik neplatných odkazů. Pochopitelně s rostoucími limity webhostingů přestane platit i potřeba tohoto scriptu, u nějž bych měl vážnou pochybnost o funkčnosti v budoucích verzích PHP, bez úprav.

Komentáře

2 komentáře: „PHP – Import velké databáze“

  1. kamil avatar
    kamil

    28MB je velká databáze?

    1. MaReK Olšavský avatar

      @Kamil: Z hlediska databáze ne. Z hlediska možnosti postování dat přes formulář a omezení na čas běhu scriptu je problém.