![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 11.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zapisuje do zmiennej liste uzytkownikow online, jednak jest ona tak duza ze w bazie danych nawet rekord LONGTEXT niewystarcza. Zatem pytanie, czy da sie stworzyc wiekszy rekord w bazie danych niz LONGTEXT? Bo jezeli nie, to trzeba bedzie rozbic ta zmienna z lista online na dwie, i zapisac polowe do jednego rekordu LONGTEXT a druga polowe do drugiego. Dopiero przed wyslaniem userom pobrac oba i zlepic w jeden sprintf'em. Wady? Dodatkowe zapytanie (pobieranie z oby rekordow zamiast z jednego) wiec wolabym ten pierwszy sposob, tylko czy sie da. Pozdro |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
Mógłbym wiedzieć po jakiego czorta zapisujesz listę userów on line do bazy danych?
Ten post edytował cicik 8.06.2007, 10:32:43 -------------------- CMS dla Twojej firmy
Wojciech Małota |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 11.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
to niema nic do tematu, ale zdradze ze dla 5 krotnego zysku wydajnosci
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli dla wzrostu wydajności to Ci powiem, że jeżeli zserializujesz tablicę z userami do pliku to zyskasz jeszcze drugie 5 razy.
Edit: Z tego co wyczytałem pole LONGTEXT mieści max. 4GB danych. Jeżeli Twoja lista userów nie mieści się na 4GB to uważam, że jeżeli chcesz się nią ostro bawić to zabijesz serwer. Domyślam się, że chcesz ją wyświetlać na stronie... Naprawdę chcesz wysyłać do internauty 4GB danych? Ten post edytował cicik 8.06.2007, 10:32:58 -------------------- CMS dla Twojej firmy
Wojciech Małota |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
Dopiero przed wyslaniem userom pobrac oba i zlepic w jeden sprintf'em. Wady? Dodatkowe zapytanie (pobieranie z oby rekordow zamiast z jednego) wiec wolabym ten pierwszy sposob, tylko czy sie da. To nie trzymaj userów w jednym rekordzie bo to chyba nie ma sensu, lepiej kazdemu nowemu userowi dopisywać nowy rekord i wykonać zapytanie w stylu: co zwróci wynik taki, jak by było wszystko w jednym rekordzie. No i te 4 GB .... -------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 11.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Hmm, czyli to niechodzi o dlugosc bo lista ma okolo 800 pozycji ale do kazdego jest dolaczony link do profilu co ja rozdluza do paru MB ale to nie GB ;].
Niewiem czemu w takim razie tak sie dzieje, ze gdy jest mala lista to ja zapisze do bazy, a jak przychodzi wiecej osob i lista sie robi dluga to juz sie niezapisuje do bazy.
Proste ale raz dziala a raz nie. ( w $online_userlist jest ta cala lista ) PS Z tym kolejnym 5 razy szybciej, zeby to cache'owac na dysku to glupota, bo to by tylko bylo szybciej gdyby baza danych byla bardzo obciazona. Gdy jest nieobciazona, to z bazy danych pobrac dane jest znacznie szybciej niz z dysku. PS2 Teraz zaczelo dzialac... nic niezmienialem... ciekawe kiedy przestanie ![]() Ten post edytował Qspy 8.06.2007, 15:10:51 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
Z tym kolejnym 5 razy szybciej, zeby to cache'owac na dysku to glupota, bo to by tylko bylo szybciej gdyby baza danych byla bardzo obciazona. Gdy jest nieobciazona, to z bazy danych pobrac dane jest znacznie szybciej niz z dysku. Taa? A silnik systemu bazy danych to niby wszystko w RAMie ma? Albo na pendrivie? Pomyśl logicznie... która sekwencja operacji będzie szybsza: 1) otworz plik -> wczytaj zawartosc -> zamknij plik 2) wyslij zapytanie -> interpretuj zapytanie -> przygotuj plan wykonania zapytania -> przeszukaj indeks -> sciagnij odpowiednie strony z dysku -> przefiltruj dane ze wczytanych stron -> przygotuj wynik -> fetchuj wynik -> prześlij fetchowane dane Jak myślisz co będzie szybsze? -------------------- CMS dla Twojej firmy
Wojciech Małota |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 11.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ta tylko dodaj do tego brak SCSI i ogromna liczbe i tak juz cache'owanych rzeczy. Usmieszki, bbcode, kategorie, styl forum... dysk tez ma ograniczona predkosc zapisu i odczytu wiec pozostala czesc rzeczy niech pozostanie w RAM'ie.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
Nie to żebym się kłócił (nie wiem jaki dysk macie na serwerze...) ale cicik ma rację. Twoje zapytanie do bazy w porównaniu z metodą plikową wypadnie gorzej z tego powodu że nie korzystasz w zasadzie z żadnych udogodnień jakie baza danych oferuje (korzystasz z jednej tabeli i jednego pola, równie dobrze można korzystać w tym przypadku z jednego pliku).
-------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
(nie wiem jaki dysk macie na serwerze...) Dysk tu naprawdę NIE MA nic do rzeczy. Baza danych swoje dane też trzyma na DYSKU. Można by próbować robić testy gdyby baza danych była na najnowszym super szybkim dysku, a scachowany plik na jakimś złomie sprzed 10 lat. -------------------- CMS dla Twojej firmy
Wojciech Małota |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
Co się tak tych dysków uczepiliście ? To jak ten SĘK z kabaretu Dudek ... faktycznie nie ma znaczenia ten dysk, ale to nie istotne. Grunt że zapytanie do bazy wykona się wolniej niż odczyt z pliku (mówię konkretnie o TYM przypadku).
pzdr -------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 06:24 |