Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pytanie o strukture bazy
maciu
post 27.08.2003, 11:16:26
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
uboottd
post 27.08.2003, 11:26:33
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 27.08.2003, 16:26:20
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 28.08.2003, 07:39:52
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 Wersja Lo-Fi Aktualny czas: 20.07.2025 - 05:25