Witam. Korzystam z tablic asocjacyjnych. Właściwie wszystko jest ok, ale w związku że pracuje na bardzo dużej ilości rekordów staram się optymalizować wszystko co się da. Otóż, jako klucz najczęściej stosuje kombinacje jakiś pól w rekordzie, np. Lista[PESEL+IMIE]. Tylko że taki klucz w tym przypadku akurat ma ponad 11 znaków, co pewnie w jakimś tam minimalnym stopniu spowalnia wyszukanie rekordu. Nie wiem na dodatek jakie ograniczenie długości mają klucze asocjacyjne. Moje pytanie: czy jest jakiś algorytm który wygeneruje mi krótszy klucz na podstawie PESEL+IMIE? Jakieś hashowanie or something?
Ale po co, skoro PESEL jest unikatowy?
To był tylko przykład. Czasami nie mam unikatowych pól tj. PESEL i wtedy kombinuje z NAZWISKO+IMIE+IMIEMATKI itp. Bo chodzi mi konkretnie tylko o to żeby skrócić klucze, nawet sam PESEL jest już w miarę za długi.
Witam, jak chcesz przyśpieszyć wyszukiwanie to korzystaj z pól mających indeks, jak nie masz to
pozakładaj indeksy, jeżeli możesz to łącz/wybieraj dane z tabel kluczami typu liczbowego. pozdrawiam
Krzychu0000 moze czas przesiąść się na jakieś bazy SQLowe :>
Akurat tak się składa że zawodowo pracuje na bazach SQL ;) , ale do swoich małych aplikacji tablice asocjacyjne w zupełności wystarczają.
Krzychu0000 napisał(a)
Akurat tak się składa że zawodowo pracuje na bazach SQL ;) , ale do swoich małych aplikacji tablice asocjacyjne w zupełności wystarczają.
jakoś to stoi w sprzeczności z Twoim pierwszym postem :p
Nie pisałem o jakichś kobyłach typu Oracle czy MSSQL ale coś małego (co działą nawet bez serwera) np. SQLite czy FB ebedded
No ale co mają wspólnego SQL i tablice asocjacyjne bo temat trochę zjechał :P Pytanie w pierwszym poście padło: czy można jakimś algorytmem wygenerować skróconą wersję klucza niż jego pierwowzór. Jeżeli nie to trudno, pozostanę przy tych długich :P . Tablice asocjacyjne potrzebuję do szybkiego zarządzania rekordami w pamięci. Z plikami póki co sobie radzę... ;)
BTW: Czy TStringList indexuje w jakiś sposób swoje itemy, czy tylko stringhashlist (czy jakoś tak)?
no mowa była o szybkim wyszukiwania a jakby nie było bazy mają coś z tym wspólnego :p
Co do TStringList to nie są one indexowane w zaden sposób, pomijając przypadek, kiedy lista jest sortowana