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...”)
 
m (Zastępowanie tekstu - "<source lang="mysql">" na "<pre>")
 
(Nie pokazano 6 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
[[Plik:rpad.png|200px|thumb|Right|(pobieramy maksymalnie 10 znaków pola strona)]]
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>
[[Category:MySQL]]

Aktualna wersja na dzień 14:30, 18 lut 2018

(pobieramy maksymalnie 10 znaków pola strona)

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