Danveld Napisano Maj 22, 2004 Zgłoszenie Share Napisano Maj 22, 2004 mam wielki problem;/ rozwalila mi sie jedna tabela. skrypt miał bład i wszystkie rekordy sie zupdatowały dając jeden ten sam. W pliku MYD widze jednak że są poprzednie dane. W jaki sposób to odzyskac?? Stare dane zgromadzone są jako nadmiar tabeli. Zależy mi na czasie. Jak coś to moje gg to: 3004239 POMOCY!!!!!! :shock: :shock: :shock: Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
mariusz Napisano Maj 24, 2004 Zgłoszenie Share Napisano Maj 24, 2004 mam wielki problem;/ rozwalila mi sie jedna tabela. skrypt miał bład i wszystkie rekordy sie zupdatowały dając jeden ten sam. W pliku MYD widze jednak że są poprzednie dane. W jaki sposób to odzyskac?? Stare dane zgromadzone są jako nadmiar tabeli. Zależy mi na czasie. Jak coś to moje gg to: 3004239 POMOCY!!!!!! :shock: :shock: :shock: Jaki typ tabeli ? Transakcje włączone ? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Danveld Napisano Maj 24, 2004 Autor Zgłoszenie Share Napisano Maj 24, 2004 Typ tabeli to standartowo MyISAM, a transakcje mam włączone. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
kangurek Napisano Maj 27, 2004 Zgłoszenie Share Napisano Maj 27, 2004 Metoda najprostsza - na chama. Skoro rekordy sa w pliku, stworz plik tekstowy i skopiuj je tam, format pliku nastepujacy: po jednym rekordzie w linijce, wartosci oddzielone tabulacja, w kolejnosci jak kolumny w CREATE TABLE. Stworz nowa tabele, z kolumnami jak wyzej i uruchom takie polecenie: LOAD DATA LOCAL INFILE 'nazwa_pliku' INTO TABLE nazwa_tabeli; Jesli tylko uda ci sie jakos bezbolesnie przeniesc te dane do pliku, to odzyskasz swoja tabele. Uhhhhhhh, no dobra. Zatem tabele MySQL siedza w plikach, jesli uzywasz MyISAM, przy czym plik .MYD przechowuje dane, natomiast plik .MYI indeksy. Jest to wynikiem koncepcji tworcow serwera, by rozdzielic jedne od drugich. Z tego co piszesz, moze wynikac, ze w jakis sposob uszkodzony zostal plik .MYI, w takim razie uruchom programik myisamchk z opcja --quick. Program stworzy nowe indeksy do pliku .MYD i zastapi stary plik .MYI. myisamchk -q nazwa_tabeli Moze pomoc. Jesli nie, musisz przeprowadzic analize jak nizej: myisamchk -m nazwa_tabeli (zobacz co znajdzie) myisamchk -e nazwa_tabeli (wykona extended check) Dodanie opcji -i wyswietli jeszcze jakies statystyki. Ps. MyISAM nie obsluguje transakcji, bo nie moze. MySQL radzi sobie z tranzakcyjnymi eginami takimi jak BDB i InnoDB. MyISAM i ISAM nimi poprostu nie sa. Zatem to czy dana tabela obsluguje tranzakcje, czy nie, nie wynika stricte z ustawien serwera, a raczej z typu tabeli jako takiej. Zatem kosztem utrzymania integralnosci zyskujemy szybkosc, jednak w przypadku naprawde waznych danych (chyba ze tabele sa koszmarnie wielkie) osobiscie zawsze decydowalbym sie na InnoDB. Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi