Ostatnio pochłaniającym mój czas zleceniem było wykonanie sklepu internetowego (artykuły spożywcze). Jednym z punktów specyfikacji było zaimportowanie danych (produktów spożywczych) z pliku CSV do bazy danych MySQL. Import miał być wykonywany przez PHP, i polegać na jednorazowym imporcie początkowych danych oraz cyklicznymi aktualizacjami danych codziennie – dane te także były zapisane w pliku CSV. Ja jako mało doświadczony „programista”* PHP pierwszym pomysłem na rozwiązanie tego problemu był skrypt PHP rozkładający plik CSV „na łopatki” i linijka po linijce wrzucanie danych do bazy. Pomysł może i dobry, ale jeśli mamy do czynienia z małą ilością danych. Niestety w moim przypadku to nie było takie proste, ponieważ produktów było 50000 „z hakiem”, tak więc wykonywanie takiego skryptu codziennie a nawet choćby jednorazowo jest niezłą dawką trucizny powodującą śmierć kliniczną komputera. Można oczywiście podzielić import na etapy...ale po co – mamy przecież język SQL do dyspozycji.
No właśnie. Pomyślałem – co mi zależy popatrzę do manuala MySQL co mi powie o importowaniu danych. Jak ulał na pomoc przychodzi instrukcja „LOAD DATA INFILE”. W banalny sposób dzięki tej instrukcji SQL można w mgnieniu oka zaimportować dane do naszej bazy. Moje zdanie na temat tego rozwiązania od razu się utwierdziło w przekonaniu, że ta jedna linijka zapytania jest o wiele lepszym rozwiązaniem niż tworzenie skyptu, który wręcz będzie „mielić” cały plik CSV i w dodatku tworzyć niepotrzebny ruch w bazie SQL. Tutaj checkpoint! Moje skromne doświadczenie powiększyło się o kolejne dobre rozwiązanie, które z pewnością wykorzystam w przyszłości.
Dla bardziej zainteresowanych składnią zapytania SQL „LOAD DATA INFILE” dorzucam link do dokumentacji MySQL: http://dev.mysql.com/doc/refman/5.0/en/load-data.html
* - czy w PHP się programuje? :)
Pokaż więcej z kategorii: SQL
Tagi: sql csv mysql import danych duza ilosc load data infile
Brak komentarzy dla tego wpisu
© Patryk Matlak 2007-2010
Hosted by Wizja.net
Odwiedź również: www.matlak.net.pl
| grantowki.wordpress.com
Słowa kluczowe: strony internetowe oświęcim, serwisy www kęty, webmaster powiat oświęcimski