Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Import z pliku CSV czy lepiej XML?, plik XML 10MB, CSV tylko 5,5MB.. co będzie wydajniejsze?
kukix
post
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


Witam.
Zastanawiam się jak najwydajniej zrobić import danych z pliku. Czy lepszym rozwiązaniem bedzie import z pliku CSV czy Xml?

Dodam, że plik XML waży prawie 10MB, CSV tylko 5,5MB.

Co będzie bardziej efektywne i mniej obciazy serwer biorac pod uwage ilość pozycji w pliku 500, 4 000, 10 000, 30 000 pozycji.

Bede wdzięczny za wszelkie spostrzezenia.

Import u mnei wygląda tak:
  1. $uchwyt = fopen ($path_name,"r");
  2. while (($data = fgetcsv($uchwyt, 6000, ";")) !== FALSE) {
  3.  
  4. array_walk ($data, 'zmiana_utf');
  5.  
  6. //WYKONYWANY KOD
  7.  
  8. }
  9. fclose ($uchwyt);
  10.  


Ten post edytował kukix 17.12.2010, 13:42:58
Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Zalezy od jego struktury jesli nie jest ona zbyt skomplikowana to na pewno csv/ini beda szybsze niz parsowanie xml'a...
Go to the top of the page
+Quote Post
www.aukcje.fm
post
Post #3





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 4.05.2010

Ostrzeżenie: (20%)
X----


Moim zdaniem tylko XML, u mnie w serwisie mamy importy z csv i z xml i xml wygrywa zdecydowanie.

Z csv są problemy często z kodowaniem lub z przecinkami i znakami interpunkcji. Xml jest szybki i łatwo można zmienić schemat i dopasować.

Pozdrawiam
Damian
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
import danych z pliku
- od kiedy to dane trzymamy w pliku XML? (IMG:style_emoticons/default/dry.gif) Zrzut tabeli z bazy też robimy w XML? A może w HTML? Plik .csv jest uznanym standardem i co najważniejsze, można dodać od razu do bazy cały plik przy pomocy zapytania LOAD DATA INFILE... a wcześniej łatwo go spreparować przy pomocy pętli while+fgets.
Cytat
csv są problemy często z kodowaniem lub z przecinkami i znakami interpunkcji. Xml jest szybki i łatwo można zmienić schemat i dopasować
- jakie problemy z kodowaniem? Jeśli kodowanie jest nieznane to jest rozpoznawane a następnie konwertowane podczas importu do bazy, ten sam problem jest przy xml. Z przecinkami problem? Znakami interpunkcji? A może to w xml jest problem ze znakami < czy &? Pierwsze słyszę, z sukcesem importowałem pliki .csv nawet po parę gigabajtów, ciekawe, co można by zrobić z podobnym plikiem w xml? I jak może być szybki skoro już na starcie waży dwa razy tyle i nie obsługuje go baza? A co ze specyfikacją elementów? Gdy dostaniesz plik .csv od razu wiesz, co to jest a weź wyślij komuś xml i każ dodać do bazy, powie pewnie (IMG:style_emoticons/default/sciana.gif) a potem (IMG:style_emoticons/default/dostal.gif)
Go to the top of the page
+Quote Post
kalmaceta
post
Post #5





Grupa: Zarejestrowani
Postów: 183
Pomógł: 24
Dołączył: 4.12.2010

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


Cytat(Pilsener @ 17.12.2010, 21:59:07 ) *
- od kiedy to dane trzymamy w pliku XML? (IMG:style_emoticons/default/dry.gif) Zrzut tabeli z bazy też robimy w XML?

od kiedy powstał XML. Zrzut w większośc baz zrobimy do XML, w niektórych i do json - to że MySQL nie potrafi tego z konsoli, nie świadczy o słabości XML.

Cytat(Pilsener @ 17.12.2010, 21:59:07 ) *
Plik .csv jest uznanym standardem i co najważniejsze, można dodać od razu do bazy cały plik przy pomocy zapytania LOAD DATA INFILE... a wcześniej łatwo go spreparować przy pomocy pętli while+fgets.
- jakie problemy z kodowaniem? Jeśli kodowanie jest nieznane to jest rozpoznawane a następnie konwertowane podczas importu do bazy, ten sam problem jest przy xml. Z przecinkami problem? Znakami interpunkcji? A może to w xml jest problem ze znakami < czy &? Pierwsze słyszę, z sukcesem importowałem pliki .csv nawet po parę gigabajtów, ciekawe, co można by zrobić z podobnym plikiem w xml? I jak może być szybki skoro już na starcie waży dwa razy tyle i nie obsługuje go baza? A co ze specyfikacją elementów? Gdy dostaniesz plik .csv od razu wiesz, co to jest a weź wyślij komuś xml i każ dodać do bazy, powie pewnie (IMG:style_emoticons/default/sciana.gif) a potem (IMG:style_emoticons/default/dostal.gif)

Jeśli myślisz, że XML nie jest uznanym standardem to się mylisz. Dwa - XML na deklaracje kodowania, niczego nie rozpoznaje - "zgaduje". Trzy - jeśli zamykamy się w gronie użytkowników MySQL to faktycznie CSV może wydawać się lepszy, ale w większości programów wymaga deklaracji separatorów, kodowania, znaków zawierających. Cztery - xml'e otworzysz nawet w przeglądarce, nawet w IE - do strawnego przeglądu. Pięć: - XML nie ma problemów z żadnymi znakami, ew. program go inaczej(czyt. źle) zapisuje (jak Excel CSV).

Poza zbędnymi(czyt. nieprawdziwymi) komentarzami Pilsener, zgadzam się z nim, wybrałbym CSV jeśli chodzi o MySQL.

Ten post edytował kalmaceta 18.12.2010, 12:37:17
Go to the top of the page
+Quote Post
Ormin
post
Post #6





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 3.02.2009

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


XML nie służy przetrzymywaniu informacji, nie po to był stworzony i nie nadaje się do tego , blednie wobec chociażby YAMLa.
Go to the top of the page
+Quote Post
darko
post
Post #7





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Xmla używa się głównie do wymiany danych w obie strony pomiędzy aplikacjami/skryptami, gdyż xml - oprócz samych danych - zawiera informacje umożliwiające rozpoznanie relacji pomiędzy tymi danymi i pozwala odzwierciedlić pewną hierarchię czy strukturę, jaką te dane stanowią, stąd pewien narzut w stosunku do plików csv. Jeśli chodzi o wydajność, to w przypadku bardzo dużej ilości danych korzystniej będzie użyć formatu csv, gdyż plik csv zawiera znacznie mniej informacji do przetworzenia. Swoją drogą phpmyadmin umożliwia eksport danych zarówno do csv, jak i do xmla.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 13:15