Napisane: 10.03.2011, 22:08:00 | |
Grupa: Zarejestrowani Postów: 219 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) |
Czyli chodzi o, to że przy sortowaniu inną metodą niż na lft tworzysz tabelę(obliczasz wszystkie lft i rgt) na nowo tylko, że trzymasz ją"tymczasowo"? Tylko jak jest dużo wejśc na stronę, to wydajność raczej sporo spada, a jakby zrobić, to od razu, po każdym "sortowalnym" atrybucie zrobić atrybuty lft i rgt? Chodzi, o to: id | name | name_lft | name_rgt | time_add | time_add lft | time_add rgt | ... I przy każdym update, insert, delete zmieniać każde lft i rgt? Baza zamula praktycznie tylko przy zmianie jej zawartości, a nie przy odczycie. Mogę prosić o opinię na temat tego pomysłu? I dziękuję za podpowiedzi. Dokładnie to miałem na myśli. Wszystkie pary atrybutów trzeba wyliczać przy zapisach, a nie odczytach. Robienie tego przy odczytach byłoby samobójstwem. Dziękuję za nazwanie tego, to już pomoże. Zrobiłem właśnie taką funkcję rekurencyjną, tylko wydawał mi się, to lichy sposób, a chciałem żeby funkcja działał ość szybko nawet przy dużo więcej niż 100tys. rekordów. Ale przyznam się, nie jest mi, to zbytnio potrzebne. To byłoby tylko w celach "akademickich". Dziękuję za podpowiedzi. Najwyżej wrzucę do tego moją starą funkcyję. Ogólna zasada mówi, że to co można zrobić w bazie należy robić w bazie. Ale tak jak wyżej napisano - wszystko zależy na jakich zbiorach chcesz operować. Przy małych sposób i miejsce sortowania nie będzie miało znaczenia, przy dużych zbiorach znaczenie będzie miało ogromne. |
Forum: MySQL · Podgląd postu: #844986 · Odpowiedzi: 8 · Wyświetleń: 1 177 |
Napisane: 10.03.2011, 21:34:42 | |
Grupa: Zarejestrowani Postów: 219 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) |
To mi sortuje po polu name, a gdybym chciał posortować po polu time_add? Które jest datą. Jak, to osiągnąć? Tak jak wspomniał poprzednik. Kolumna LEFT determinuje sposób sortowania. Miałem kiedyś podobny problem. Kolega wyżej proponuje sortowanie po stronie kodu PHP. Ja do tego podszedłem zgoła inaczej. Dla każdego atrybutu (kolumny) po którym chcę sortować (nazwa, czas etc.) tworzę osobną parę parametrów LEFT i RIGHT. Wymaga to więcej pracy po stronie bazy przy konstrukcji drzewa (polecam użycie procedury składowanej i tabeli tymczasowej trzymanej w pamięci engine typu MEMORY). |
Forum: MySQL · Podgląd postu: #844969 · Odpowiedzi: 8 · Wyświetleń: 1 177 |
Napisane: 23.12.2007, 18:10:19 | |
Grupa: Zarejestrowani Postów: 219 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) |
Na moje oko takie coś działało od momentu kiedy pojawiła się w PHP obiektowość. |
Forum: PHP · Podgląd postu: #422544 · Odpowiedzi: 1 · Wyświetleń: 694 |
Napisane: 23.09.2007, 08:40:22 | |
Grupa: Zarejestrowani Postów: 219 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) |
Wywal BEGIN i END i zadziala |
Forum: PHP · Podgląd postu: #398440 · Odpowiedzi: 1 · Wyświetleń: 806 |
Napisane: 25.07.2006, 18:41:43 | |
Grupa: Zarejestrowani Postów: 219 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) |
|
Forum: PHP · Podgląd postu: #277633 · Odpowiedzi: 3 · Wyświetleń: 2 125 |
Nowe odpowiedzi Brak nowych odpowiedzi Popularny temat (Nowe) Popularny temat (Brak nowych) |
Sonda (Nowe) Sonda (Brak nowych) Zamknięty temat Przeniesiony temat |
Wersja Lo-Fi | Aktualny czas: 13.06.2024 - 05:30 |