Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pytanie o strukture bazy
maciu
post
Post #1





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
uboottd
post
Post #2





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
dragossani
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 398
Pomógł: 0
Dołączył: --
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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).


--------------------
cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
Go to the top of the page
+Quote Post
uboottd
post
Post #4





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 07:32