Zadejte hledaný výraz...

Prochazeni CSV files

Krystof
verified
rating uzivatele
(2 hodnocení)
24. 4. 2018 11:39:59
Zdravim,
momentalne resim vlastni naseptavac vsech adres v CR, zdrojove data mam ale protoze je jich hodne (6258 csv souboru - rozdelene podle obci), musim kazdy soubor projit a nacpat do databaze, ovsem mam problem s rychlosti a potreboval bych script zrychlit. Bohuzel nejsem expert na rychlost :) proto bych rad dohledal pomoc zde.
kod:
$dir = new DirectoryIterator("data/CSV/");
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
$file++;
ini_set('auto_detect_line_endings',TRUE);
$handle = fopen('data/CSV/'.$fileinfo->getFilename(),'r');
$i = 0;
echo "
Processing file: ".$fileinfo->getFilename()."
Rows: ";
while ( ($data = fgetcsv($handle) ) !== FALSE ) {
$i++;
$records++;
if($i == 1) continue;
$tmp = iconv('Windows-1250', 'UTF-8', current($data));
$tmp = explode(";",$tmp);
echo $i." ";
$insertData = array(
'id' => (string)$tmp],
'nazevObce' => (string)$tmp],
'nazevCasti' => (string)$tmp],
'ulice' => (string)$tmp],
'domovniCislo' => (string)$tmp],
'orientacniCislo' => (string)$tmp],
'psc' => (string)$tmp]
);
dibi::query("INSERT INTO adresy %v", $insertData,"ON DUPLICATE KEY UPDATE %a", $insertData);
// if($i == 30) die();
}
unlink('data/CSV/'.$fileinfo->getFilename());
}
}
Díky
24. 4. 2018 11:39:59
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342446
Jinak shodit indexy pri importu
24. 4. 2018 12:01:33
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342445
Krystof
verified
rating uzivatele
(2 hodnocení)
24. 4. 2018 12:05:37
Napsal vdusek;1458914
Jinak shodit indexy pri importu
100% nechapu ale bude se jednat o shell prikazy, ja bych to potreboval pres PHP a automatizovat aktualizaci pomoci CRONu. Mozna jsem to spatne pochopil tak me prosim opravte zda to je reference k nejakym funkcim ktere lze provest pres PHP, díky.
24. 4. 2018 12:05:37
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342444
Tak pred importem shodit indexy na DB a nahodit je az po importu. Indexovani po kazdem insertu zdrzuje
24. 4. 2018 12:11:03
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342443
Ribinus
verified
rating uzivatele
(4 hodnocení)
24. 4. 2018 15:08:47
Předpokládám, že načtení adres do DB je jednorázový úkon, takže bych to resil raději v externím databázovém programu a pak náhrat databázi na server. Budete to mít jednodušší a rychlejší.
Čerpám z vlastni zkusenosti:-)
24. 4. 2018 15:08:47
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342442
Krystof
verified
rating uzivatele
(2 hodnocení)
24. 4. 2018 15:11:29
Napsal Ribinus;1458966
Předpokládám, že načtení adres do DB je jednorázový úkon, takže bych to resil raději v externím databázovém programu a pak náhrat databázi na server. Budete to mít jednodušší a rychlejší.
Čerpám z vlastni zkusenosti:-)
Chtěl bych to mít řešené takto z důvodu aktualizace adres přes cron jednou mesicne. momentalne jsem ve fazi kdy 6258 souboru dam do jednoho velkeho souboru a ten dam do databaze pres prikaz LOAD DATA LOCAL INFILE, s tou funkci zatim trochu bojuju jeste.
24. 4. 2018 15:11:29
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342441
Petyk
verified
rating uzivatele
(3 hodnocení)
24. 4. 2018 19:51:29
Vypinat kvuli tomu indexy je zbytecny, dibi umi jednoduse multiple insert, tak si to nejdriv nasyp do pole a potom to vloz vsechno najednou.
24. 4. 2018 19:51:29
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342440
Krystof
verified
rating uzivatele
(2 hodnocení)
24. 4. 2018 19:57:06
Napsal Petyk;1459018
Vypinat kvuli tomu indexy je zbytecny, dibi umi jednoduse multiple insert, tak si to nejdriv nasyp do pole a potom to vloz vsechno najednou.
To je pravda, osobne nevim co je lepsi, prochazet a sypat to po souborech nebo si to nacist vse a nasypat zaroven? Celkove se jedna o necelych 3mil zaznamu.
24. 4. 2018 19:57:06
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342439
Petyk
verified
rating uzivatele
(3 hodnocení)
24. 4. 2018 21:10:00
jo, tak na 3M zaznamu to asi bude fakt spis na to nacteni ze souboru, ktere podle dokumentace mysql je asi 20x rychlejsi ;)
---------- Příspěvek doplněn 24.04.2018 v 21:10 ----------
MySQL :: MySQL 5.6 Reference Manual :: 8.2.4.1 Optimizing INSERT Statements
24. 4. 2018 21:10:00
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342438
Krystof
verified
rating uzivatele
(2 hodnocení)
24. 4. 2018 21:30:01
Napsal Petyk;1459038
jo, tak na 3M zaznamu to asi bude fakt spis na to nacteni ze souboru, ktere podle dokumentace mysql je asi 20x rychlejsi ;)
---------- Příspěvek doplněn 24.04.2018 v 21:10 ----------
MySQL :: MySQL 5.6 Reference Manual :: 8.2.4.1 Optimizing INSERT Statements
To vim, bohuzel na hostingu je ta funkce v mysql zakazana, takze potrebuji jeste nejake rozumne alternativni reseni
24. 4. 2018 21:30:01
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342437
exander
verified
rating uzivatele
(2 hodnocení)
16. 5. 2018 23:23:47
Plaťe si VPS. Nevím, co máte za hosting, ale pokud budete dělat takové věci, tak Vám hosting nebude brzo stačit.
16. 5. 2018 23:23:47
https://webtrh.cz/diskuse/prochazeni-csv-files#reply1342436
Pro odpověď se přihlašte.
Přihlásit