![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 20.10.2002 Skąd: Kraków Ostrzeżenie: (0%)
|
Witam,
mam następujący problem. Posiadam w bazie danych kilka milionów rekordów. Są to informacje o osobach (title, imię, nazwisko, adres, kod pocztowy, email ...). Jak napisałem takich rekordów jest kilka milionów. Zdarza się, że przychodzą do mnie ludzie z plikami w Excellu. W pliku jest np 60 000 rekordów. Proszą mnie, żeby przypisać do osób w pliku Excell adresy email z bazy danych łącząc te 2 źródła informacji po: Title: takie jak Mr, Ms, Miss itp... Nazwisko Kod pocztowy Szukanie takich informacji trwa piekielnie długo. Jak najlepiej zaprojektować bazę danych i jak przechowywać w niej dane - jak zaindeksować tabele, żeby wyszukiwanie trwało dość szybko. Dzięki za wszystkie propozycje. Rafał |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 4.10.2007 Ostrzeżenie: (0%)
|
Jeśli ktoś prosi cię np. żeby przypisać adresy email dla osoby
o nazwisku X imieniu Y i tytule Z to musisz na nazwisku, imieniu i tytule mieć nałożony indeks. Ogólnie to na wszystkie atrybuty po których łączysz tę tabelę z excel'a i tablę bazy danych. Jeżeli masz inne zestawy atrybutów po których łączysz tzn. ktoś przychodzi i mówi żeby wypisać te adresy email po tytułach i nazwiskach tylko wtedy musisz mieć indeks na atrybutach tytuł i nazwisko. Nie wiem jak można połączyć bezpośrednio arkusz excela i bazę danych ale chyba da się zaimportować dane z arkusza do mysql. Napewno potrafi to robić OpenOffice a w msoffice napewno da się skorzystać z ODBC |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%)
|
Tak jak powiedział przedmówca - indeksy to podstawa. Najsilniejsze jednak są indeksy unikatowe - są najszybsze. Dlatego jesli tylko wiemy o jakimś polu lub kombinacji pól że może być unikalna - warto założyć na takiej grupie indeks unikalny.
Nie wiem w jaki sposób wymieniasz dane między excelem a mysql. ODBC jest wolny - można wykorzystać inne sposoby. Nie wiem też ile jednorazowo danych wrzucasz do excela. Ale chyba nie tak dużo bo excell ma ograniczenie wielkości arkusza. Ja tez mam miliony rekordów w kilkudziesięciu powiązanych tabelach - łącznie 3GB danych i uwierz mi wszystko hula szybko. Wykorzystywałem wiele metod. Najprostsza jest taka: piszesz w php stronę która wyświetla tabele HTML z danymi wynikowymi. Następnie w skrypcie php przed wysłaniem html do przeglądarki wysyłasz nagłówek informujący o typie pliku - arkusz excel. Można wymusić zapisanie pliku wynikowego lub otwarcie go w przeglądarce. Excel świetnie otwiera tabele htmlowe. Jeszcze inny sposób to wystawienie interfejsu XML - w nowych pakietach msoffice są wbudowane narzędzia obsługi list XML - nawet do worda można wstawić dynamiczna tabele. |
|
|
|
![]() ![]() |
|
Aktualny czas: 19.12.2025 - 21:39 |