Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wolne wykonywanie INSERT do MySQL-a
MiChaSSs
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 4
Dołączył: 6.09.2007

Ostrzeżenie: (0%)
-----


Hej,
Co prawda aplikacja jest napisana w C (z wykorzystaniem MySQL API) a nie w PHP, ale problem tkwi po stronie MySQL-a stad pisze tutaj a nie na forum C/C++. Program ktory napisalem, ma wrzucac informacje z przeparsowanego pliku tekstowego do bazy danych, problem polega tylko na tym, ze tych danych jest sporo (stad wybralem C a nie PHP). Sprobowalem wrzucic dane tylko z 1 pliku co daje ~ 3487 zapytan do bazy danych i program wykonywal sie przez prawie 3 minuty! Co przy ponad 500 plikach daje wiecznosc wink.gif. No ale pomyslalem, ze moze jest to wina braku optymalizacji programu, wiec postanowilem napisac cos takiego:

  1. int i;
  2.  
  3. for(i =0; i < 3486; i++)
  4. {
  5. mysql_query(mysql_connection, "INSERT INTO `tabela` VALUES(20110608,1234.0,1234.0,1234.0,1234.0,1234)");
  6. }


gdzie tabela to:

  1. CREATE TABLE `tabela` IF NOT EXISTS
  2. (
  3. kolumna_1 DATE DEFAULT NULL,
  4. kolumna_2 FLOAT(5,2) DEFAULT NULL,
  5. kolumna_3 FLOAT(5,2) DEFAULT NULL,
  6. kolumna_4 FLOAT(5,2) DEFAULT NULL,
  7. kolumna_5 FLOAT(5,2) DEFAULT NULL,
  8. kolumna_6 FLOAT(5,2) DEFAULT NULL
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


Kod pisalem z pamieci (nie mam teraz dostepu do zrodla programu) wiec moga gdzies byc byki, ale chcialem przekazac tylko sens. Okazalo sie, ze przedstawiony wyzej kod tez wykonuje sie w granicach 3 minut ;/. Mieliscie kiedys podobna sytuacje? Dlaczego tak sie dzieje? Jak to naprawic? Dziekuje za wszelka pomoc, pozdrawiam MD
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 17:25