Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 13 Dołączył: 16.06.2006 Ostrzeżenie: (0%)
|
Mam tabele do ktorej musze wgrac paredziesiat tysiecy produktow, problem w tym ze musze to zobic w jak najkrotszym czasie zeby wystarczyly czasu wykonywania skryptu na inne rzeczy. Dziele sobie wiec dane w partie po tysiac i wgrywam partiami. Problem w tym ze to i tak za wolno, tabele zrobilem w MyISAM, pobowalem wgrywac przez csv, ale napotkalem problemy, wgrywala sie tylko czesc bazy a nie wyskakuja tam (przez pdo) zadne bledy.
Pytanie wiec jak najszybciej wykonac inserty, co moge jeszcze zrobic ? Kazda rada bardzo mi sie przyda, siedze z tym od wczoraj rano ... |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Mozesz pokazac kod ktory realizuje to dzielenie na partie i potem wgrywanie tych partii?
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 13 Dołączył: 16.06.2006 Ostrzeżenie: (0%)
|
Pewnie:
w skrocie wrzuca wszystkie produkty do tablicy, dzieli po 1000 i te podzielone paczki wrzuca do bazy Ten post edytował Agape 17.06.2016, 10:15:30 |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Co sie kryje pod $this->query? PDO? mysqli? mysql?
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 40 Dołączył: 2.06.2016 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Import będzie jednorazowy, czy tworzysz skrypt, który będzie cyklicznie się wykonywał?
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 13 Dołączył: 16.06.2006 Ostrzeżenie: (0%)
|
@nospor PDO:
Kod public function query($sql) { if(!$this->db) $this->polacz_z_baza (); $this->ilosc_zapytan += 1; return $this->db->query($sql); } Kod $this->db = new PDO('mysql:host='.$this->db_config['host'].';dbname='.$this->db_config['db_name'].';encoding=utf8', $this->db_config['username'], $this->db_config['password']); $this->db->exec("SET CHARACTER SET utf8"); $this->db->exec("SET NAMES utf8"); $this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); @emstawicki srednio co pare 2 - 3 dni, teraz wykonuje sie jakies 25 sekund, musze zejsc jak najnizej bo caly skrypt sie wywala przez max czas wykonywania skryptu ktorego nie moge zawiekszyc bo to na wielu serwerach jest :/ Ten post edytował Agape 17.06.2016, 10:40:48 |
|
|
|
Post
#7
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Ok, skoro to PDO to moze sprobuj z prepare
http://php.net/manual/en/pdo.prepare.php ktore przygotowuje zapytanie raz a ty tylko potem przy pomocy execute wkladasz dane do tego zapytania - z definicji powinno to byc szybsze. |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 07:46 |