• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Długi czas pracy z bazą danych

Object Storage Arubacloud
0 głosów
146 wizyt
pytanie zadane 5 września 2016 w Java przez kaminki Obywatel (1,030 p.)
Mam w bazie danych dwie tabele. W jednej jest słownik (ang - pol) a w drugiej importowana lista ze słowami do tłumaczenia (tylko nazwa angielska z pusta kolumną pol). W programie na początku wysyłam zapytanie aby sprawdziło czy w słowniku istnieje słowo i jeżeli tak to ma je wpisać do pustego pola w drugiej tabeli. I tak dla każdego słowa. A jest ich około 11000. Później wyświetlam je w TableView (JavaFx). I tu już jest problem bo to trwa zbyt długo. Ta operacja zajmuje około 15s czasu. A dalej jest jeszcze gorzej. Komórki mam edytowalne i gdy wpisze tłumaczenie to wysyła je do słownika, i później powtarza krok jak wcześniej czyli sprawdza czy jest w słowniku i jeśli jest to wpisuje tłumaczenie i później wyświetla. I za każdym razem gdy wpiszę to powtarza krok. I to zajmuje tez około 15s. Jest jakiś inny sposób aby to działało szybciej? Może wielowątkowość a jeśli tak to ile to przyśpieszy i jak do tego podejść?

2 odpowiedzi

+2 głosów
odpowiedź 5 września 2016 przez manjaro Nałogowiec (37,390 p.)
Może trochę z innej strony? Po co wyświetlać naraz 11000 rekordów? Przecież nikt nie będzie pracował jednocześnie na takiej ilości danych? Nie można zastosować jakiegoś filtra? Albo wyświetlić na przykład 100 pierwszych rekordów spełniających warunek?
+1 głos
odpowiedź 5 września 2016 przez Thomas Frost Bywalec (2,540 p.)
Cześć,

 

Po pierwsze musisz posortować rekordy alfa-numerycznie (w tym wypadku wystarczy alfabetycznie), a następnie korzystając z "binary search" możesz wyszukiwać odpowiednie komórki z szybkością log(n), gdzie n jest ilością rekordów (dla obecnej ilości to koło 13 kroków).
​Jeśli chodzi o wyświetlanie całej tabeli - to bardzo zły pomysł, używaj małych porcji (np. 50 wierszy). Tego już nie da się przyspieszyć, jedynie wybieranie i edytowanie (ponieważ aby edytować trzeba wyszukać/wybrać).

​Pozdrawiam,
Tomek

Podobne pytania

0 głosów
1 odpowiedź 378 wizyt
0 głosów
1 odpowiedź 99 wizyt
pytanie zadane 6 września 2016 w Java przez kaminki Obywatel (1,030 p.)
0 głosów
2 odpowiedzi 277 wizyt

92,550 zapytań

141,392 odpowiedzi

319,520 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...