[C++, MySQL] Wysyłanie dużych plików do bazy
Ostatnio zmodyfikowano 2013-08-14 13:10
roserek Temat założony przez niniejszego użytkownika |
[C++, MySQL] Wysyłanie dużych plików do bazy » 2013-08-12 15:20:34 Witam, piszę program w C++ który jednorazowo wysyła plik tekstowy około 25 mb do pola longtext w mysql. ( long dlatego ponieważ w przyszóosci bedzie wysyłać duzo większe pliki ). Wszystko działa, tylko program wykonuje się stosunkowo dlugo, mam wrażenie że jest to wina właśnie mysql. Wiecie może jak wydajna jest ta baza z takimi plikami tekstowymi ??? Czy to mój program jest skopany. Dodam jeszcze że plik tekstowy najpier wczytuje do stringstream a później wysyłam. |
|
xevuel |
» 2013-08-12 15:50:23 1. Zmierz czas poszczególnych fragmentów i wtedy oceniaj. 2. Jeśli to jednak wina MySQL, to prawie na pewno nic nie poradzisz. Wątpię również, aby inne biblioteki były znacząco szybsze. 3. W jakim celu zapisujesz plik do bazy? |
|
DejaVu |
» 2013-08-12 18:57:26 1. Może jednak Twoje łącze jest wolne? 2. Może wczytujesz zawartość pliku do std::string, który jest beznadziejnie wolny i ta operacja długo trwa? |
|
domin568 |
» 2013-08-13 01:27:26 Spróbuj stworzyć MEGA najlepiej dynamicznie alokowana tablice char z twoim tekstem , spróbować wysłać do tej funkcji wskaźnik ( wskaźniki są o wiele szybsze ) , myśle ze powinno sie udać ( nie używam MySQL ) |
|
roserek Temat założony przez niniejszego użytkownika |
» 2013-08-13 08:20:53 używam strumienia ( stringstream ). Ale nie wydaje mi się żeby to byla jego wina. |
|
MrPoxipol |
» 2013-08-13 10:07:30 Hm, no to policz czasy jak to napisał @xevuel? Sprawdź, która czynność zajmuje aplikacji najwięcej czasu. Podziel sobie na A i powiedz jeszcze jaki masz upload, bo wysłanie 25MB to trochę Ci zajmie. Zrób speed test z tej strony: speedtest.pl i podaj wyniki (Jako obrazek, dostaniesz tam link do wklejenia). |
|
pekfos |
» 2013-08-13 10:57:39 wskaźniki są o wiele szybsze |
od czego? |
|
domin568 |
» 2013-08-13 13:52:00 Przesłanie wskaźniku do stringa , jest o wiele szybsze niż przesłanie samego wskaźnika (czy to przez referencje , czy tworząc kopie obiektu w funkcji ) |
|
« 1 » 2 |