[mysql] wydajnosc struktury

0

witam

mam pytanko...
potrzebuje miec tabele w bazie w ktorej bedzie kilka (moze nawet nascie) pol typu 0-1 (true-false)

i teraz jka to rozwiazac? bo z jednej strony mozna by to upchac do jednej zmiennej i odczytywac poszczegolne bity

a z drugiej wszystko do osobnych pol

drugie rozwianie ma ten plus ze mam wiekszą swobode przy wyborze interesujacych mnie rekordow z bazy (w 1 przypadku nie zawsze da sie odpowiednio spreparowac maske odczytu, a filtrowanie po odczytaniu wszystkich rekordow strasznie zamuli baze jak wiadomo)

i teraz pytanie: czy ten drugi sposob wplynie znacznie na wydajnosc bazy ?

i ew. od ilu rekordow w bazie wydajnosc zacznie miec znaczenie (planowo tabela ta bedzie miala ok. 500-5000 rekordow, przy czym bedzie bardzo czesto uzywana, przez wielu kientow)

0

Zdecydowanie doradzam osobne pola. Zapiszesz w jednym i teraz to rozbijac, indeksowac, odwolywac sie i tak dalej i masz zdecydowany spadek wydajnosci. MySQL nie powstal wczoraj, jak juz ktos kiedys napisal - badziej wydajnych procedur sam nie wymyslisz.

0

Oczywiscie, tak jak napisal roSzi - drugi sposob jest o niebo lepszy. Nie masz sie co przejmowac - kilkanascie kolumn w tabeli to wcale nie tak duzo, a w dodatku skoro beda jedynie true lub false...

Co do wydajnosci to wszystko zalezy od sprzetu na ktorym dziala serwer. Wezmy jako przyklad serwis 4programmers.net. Tabela przechowujaca informacje o uzytkownikach posiada ponad 30 kolumn. Wierszy w tej tabeli jest ponad 6 tyś. Zapytanie ktore operuje na tej tabeli wykonywane jest przy kazdym przeladowaniu strony. Dodatkowo jest to zapytanie laczone ktore pobiera dane z innych kolumn. Jak widzisz, wszystko dziala sprawnie, nawet w momencie gdy jednoczesnie serwis przeglada 200 userow.

Wydaje mi sie ze z tego co powiedziales taka baza na srednim sprzecie, zakladajac ze beda na niej wykonywane podstawowe operacje (UPDATE, SELECT) bezproblemowo pociagnie ponad 100,000 rekordow w jednej tabeli, zachowujac przy tym dobra wydajnosc.

P.S. Tworzac kolumny w tabeli, uzyj typu TINYINT

0

dzieki.. o to mi chodzilo ... a sprzet na ktorym bedzie dzialal skrypt to "kupny" serwer (a wlasciwie miejsce na nim)

ten serwer ma chyba calkiem dobry sprzet bo wiekszosc moich prac na nim odpalane smigaly jak 'gupie' :))

ps. roszi - wychodzac z takiego zalozenia to .... [...]

0

Aaa, to w takim wypadku nie masz sie o co martwic :) Nawet w tabelach powyzej 100 tys. bedzie smigalo jak ta lala...

0
delphiak napisał(a)

ps. roszi - wychodzac z takiego zalozenia to .... [...]

... to opensource jest czyms wspanialym?

1 użytkowników online, w tym zalogowanych: 0, gości: 1