Pobieranie rekordów z bazy mysql a wydajność- RPAD: Różnice pomiędzy wersjami
Linia 10: | Linia 10: | ||
<source lang="mysql"> | <source lang="mysql"> | ||
SELECT RPAD (strona , 10 , '') FROM 'strony_komentarze' as test | SELECT RPAD (strona , 10 , '') FROM 'strony_komentarze' as test | ||
</ | </source> | ||
Przykładowy wynik: | Przykładowy wynik: |
Wersja z 00:15, 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: <source lang="mysql"> SELECT RPAD (strona , 10 , ) FROM 'strony_komentarze' as test </source>
Przykładowy wynik: