Pobieranie rekordów z bazy mysql a wydajność- RPAD: Różnice pomiędzy wersjami

Z Podręcznik Administratora by OPZ SGU
Przejdź do nawigacji Przejdź do wyszukiwania
(Utworzył nową stronę „Niejednokrotnie konieczne jest pobranie rekordu z bazy i skrócenie go przed wyświetleniem do określonej ilości znaków. Zazwyczaj wykonuje się to za pomocą '''sub...”)
 
Linia 1: Linia 1:
Niejednokrotnie konieczne jest pobranie rekordu z bazy i skrócenie go przed wyświetleniem do określonej ilości znaków.
Niejednokrotnie konieczne jest pobranie rekordu z bazy i skrócenie go przed wyświetleniem do określonej ilości znaków.
Zazwyczaj wykonuje się to za pomocą '''substr''' jednak ma to jedną wadę.Konieczne jest pobranie całego
 
rekordu i dopiero wykonanie na na nim operacji skracania co znacznie zamula  serwer.
Zazwyczaj wykonuje się to za pomocą funkcji php '''substr''' jednak jest to rozwiązanie obarczone pewną wadą.
 
Konieczne jest pobranie całego rekordu i za-alokowanie dla niego pamięci, dopiero poźniej wykonanie na na nim operacji skracania co znacznie spowalnia serwer (zabiera zasoby ram procesu interpretera php, oraz generuje ruch między serwerem mysql a www) w wypadku długich stringów.


Znacznie bardziej eleganckim rozwiazaniem jest skorzystanie z Mysql-owej funkcji '''RPAD''' która pozwala nam pobrać z bazy określona ilość znaków z rekordu.
Znacznie bardziej eleganckim rozwiazaniem jest skorzystanie z Mysql-owej funkcji '''RPAD''' która pozwala nam pobrać z bazy określona ilość znaków z rekordu.


Przykład zastosowania:
Przykład zastosowania:
<pre>
SELECT RPAD (strona , 10 , '') FROM 'strony_komentarze' as test
SELECT RPAD (strona , 10 , '') FROM 'strony_komentarze' as test
</pre>
Przykładowy wynik:
(pobieramy maksymalnie 10 znaków pola strona)
[[Plik:rpad.png]]

Wersja z 00:14, 16 paź 2010

Niejednokrotnie konieczne jest pobranie rekordu z bazy i skrócenie go przed wyświetleniem do określonej ilości znaków.

Zazwyczaj wykonuje się to za pomocą funkcji php substr jednak jest to rozwiązanie obarczone pewną wadą.

Konieczne jest pobranie całego rekordu i za-alokowanie dla niego pamięci, dopiero poźniej wykonanie na na nim operacji skracania co znacznie spowalnia serwer (zabiera zasoby ram procesu interpretera php, oraz generuje ruch między serwerem mysql a www) w wypadku długich stringów.

Znacznie bardziej eleganckim rozwiazaniem jest skorzystanie z Mysql-owej funkcji RPAD która pozwala nam pobrać z bazy określona ilość znaków z rekordu.

Przykład zastosowania:

SELECT RPAD (strona , 10 , '') FROM 'strony_komentarze' as test

Przykładowy wynik:

(pobieramy maksymalnie 10 znaków pola strona) Rpad.png