Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: optymalne wyciagniecie danych
Forum PHP.pl > Forum > Bazy danych > MySQL
arczi
witam,

do portala blogowego mam stworzona tabele przechowujaca kazdy nowy wpis:
id, title, title_alias, introtext, fulltext, ... [cms joomla]

na stronie glownej mam miejsce do wyswietlania ostatnich wpisow, jednak chcialbym wyswietlac tylko wbrane wpisy, tzn. moderator przeglada bloga i wybiera fajne wpisy, ktore moglyby byc umieszczone na stronie glownej i tu pytanie jak oznaczac te wpisy?

w tabeli mam okolo ~50 000 wpisow, rosnie w tempie ~1 000 wpisow/dzien, mam w tabeli kolumne 'check'
wybor:
- sprawdzone wpisy 'updateowac' przez zmienienie wartosci pola 'check' 0 -> 1 ?
- utworzyc nowa tabele (id_wpisu, check)

nie wiem czy nie bedzie jakiegos spowolnienia, obciazenia, gdy baza w ktorej zapisuje sie/wyswietla/edytuje wpisy dodatkowo bedzie 'updateowana' przez moda?

pozdrawiam smile.gif
DeyV
Postaraj się, by sprawdzana kolumna była najmniejszym możliwym typem, (w zależności od wersji MySQL - boolean lub tinyint) i ustaw dla niej index.

Nic więcej nie będzie konieczne. Przeszukiwanie i filtrowanie danych w takiej sytuacji jest bardzo szybkie.
SongoQ
Index w tym przypadku na pewno pomoze ale nieraz index ma negatywny wplyw na zapytania (wszystkie zapytania DML)
DeyV
SongoQ - a znasz jakąś alternatywę dla tworzenia indeksów?

Oczywiste jest to, że każda dodatkowa operacja pociąga za sobą dodatkowe koszty, ale w takiej sytuacji trzeba pamiętać o ich znaczeniu oraz ewidentnych korzyściach.
SongoQ
@DeyV Nie znam. To jest jak z kobieta. Za duzo zle za molo jeszcze gorzej. Czesto widzialem przyklady ze podczas wkladania wielkiej ilosci danych indeksy usuwane sa lub wylanczane a po skonczeniu index jest odbudowywany. Wsumie to sie tyczy do kazdej operacji ktora modyfikuje stan bazy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.