Pobieranie rekordów z bazy mysql a wydajność- RPAD: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
m (Zastępowanie tekstu - "<source lang="mysql">" na "<pre>") |
|||
(Nie pokazano 4 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. | ||
Linia 12: | Linia 14: | ||
</pre> | </pre> | ||
[[Category:MySQL]] | [[Category:MySQL]] |
Aktualna wersja na dzień 14:30, 18 lut 2018
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