Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie o strukture bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
maciu
Chciałbym zaczerpnąc od Was wiedzy na temat optymalizacji bazy Mysql.

Posiadam baze w których jest wiele pól, w tym jest jedno pole o typie TEXT, w który znajuduje się długi tekst.

Moje wątpliwości wiążą się z tym, czy lepiej zostawić tabele bazy w takiej formie jak przedstawiłem, czy rozdzielić ją na dwie tabele gdzie w jednej będzie tylko pole TEXT, w a drugiej pozostałe pola.

Czy jeżeli rozdziel tą tabele na dwie to szybciej będzie ona działać, szybciej będą pobierane wyniki z takiej bazy?

Bardzo Was proszę o opinie
uboottd
Jesli zawsze przy okazji pobierania wierszy z tej tabeli pobierasz ten TEXT to w jednej tabeli bedzie to szybsze. Jesli jednak co najmniej spora czesc zapytan omija ta kolumne to oplaca sie rodzielic to na dwie tabele, ale wtedy tez zwroc uwage na typy w tabeli z ktorej wylatuje ten TEXT. Jesli sa w niej VARCHAR-y to zamien je na CHAR-y - tez troche przyspieszy.
dragossani
Nie sądze żeby wyniesienie jednego z pól do osobnej tabeli przyspieszyło wyszukiwanie. Łatwo to sprawdzić za pomocą EXPLAIN. Jeśli MySQL nie dotyka w ogóle tego pola w trakcie wyszukiwania i szuka wyłącznie po indeksach, to przeniesienie tego pola nic nie zmieni - nawet w zapytaniach nie wyciągających danych z tego pola. Może nawet zaszkodzić (konieczne złączenie).
uboottd
Pobieranie, nie wyszukiwanie. Zreszta zwroc uwage na zastrzezenie ze odwolan nie pobierajacych tego pola musi byc znaczaco wiecej niz z pobraniem. Chodzi o to, ze mysql szybciej obsluguje tabele ze stala dlugoscia wiersza (a pole typu TEXT powoduje ze wiersz takim byc nie moze), oraz ma mniejszy plik do przegladania w ogole. Jesli odwolan bez pobrania jest odpowiednio wiecej to narzut czasu na sklejenie jest rownowazony przyspieszeniem takiej tabeli.
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-2024 Invision Power Services, Inc.