![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 7.11.2004 Ostrzeżenie: (40%) ![]() ![]() |
Założmy, że mamy bazę danych, w niej tabelę posty. W tej tabeli komórki autor_id, data, treść itp... Założmy, że treść jest zwykle długa. Czy opłaca robić się osobną tabelę dla treści? Jeśli tak, to w jakich sytuacjach to się opłaci?
Np. na czym polega szukanie, np. "SELECT COUNT(*) FROM posty". Czy to pobiera wszystkie wartości (czyli im więcej tekstu w komórce treść, tym dłużej zapytanie będzie trwało)? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 7.11.2004 Ostrzeżenie: (40%) ![]() ![]() |
Po pierwsze jesli 1 pole z trescia jest przypisywane do jednego rekordu z postem to nie rozdzielamy tablicy. Jeżeli natomiast jedno pole z tresciu nalezy do wielu rekordow z postami lub wiele tresci nalezy do jednego rekordu to wtedy sie rozdziela tablice. W tabeli z postami, np. na forum, praktycznie każdy post ma swoją własną, unikalną treść i na odwrót. Zatem rozumiem, że nie zgadzasz się z MaKARONem? |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
W tabeli z postami, np. na forum, praktycznie każdy post ma swoją własną, unikalną treść i na odwrót. Zatem rozumiem, że nie zgadzasz się z MaKARONem? Tak zarczej sie nie zgadzam z MaKARoNem poniewaz rozdzielanie takiej tablicy spowoduje jedynie obnizenie optymalizacji. Tak jak mowiłem dodaj index FULLTEXT (jesli twoja wersja mysqla pozwala na to), poszukaj sobie metod przeszukiwania w SQL (poszukaj w manuala MATCH AGAINST, jesli dobrze to pamietam). Wszystkie kolumny łączące relacje między tabelami, np. user_id, topic_id i inne dodawaj jako INDEX w tablicy. Bedziesz czesto łączył tablice po tych kolumnach wiec bedzie działa dużo szybciej. W sumie tak wygląda koniec optymalizacji tej tablicy. Przy innych moze być podobnie, chyba ze masz inne relacje miedzy tablicami to może być troche inaczej. Życze powodzenia. Po optymalizacji rzetestuj sobie tak napisane forum przy ilości postow na poziomie 10-500 tys rekordow dla znalezienia ewentualnych "wąskich gardeł" (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 05:16 |