Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]REGEXP
Forum PHP.pl > Forum > Przedszkole
majestiq
  1. <?php
  2. $sql = 'SELECT * FROM `tabela` WHERE `tytul` REGEXP ''.$tytul.'' LIMIT 10 ';
  3. $result = mysql_query($sql1231);
  4. ?>


Czy można jakoś zoptymalizować to zapytanie, mam wrażenie, że przy dużej liczbie użytkowników powoduje ono
przeciążenie bazy. Czy rzeczywiście tak może być ?
golaod
Nie da się zoptymalizować tego zapytania, co najwyżej możesz zoptymalizować samego regexpa który nie wiem jaki jest.
Możesz też zamiast bawić się w regexpy po prostu szukać po jakiś słowach kluczowych lub całym tytule.
=
LIKE
LIKE '%as'
LIKE 'as%'
LIKE '%as%' - to strasznie zamula czasem może trwać nawet 30 sekund.
majestiq
Czyli co LIKE jest ogólnie lepsze (szybsz) niż REGEXP ?
golaod
Tzn. nie mam wielkiego pojęcia na temat LIKE wiem tylko tyle, że = to ułamki sekund w poszukiwaniu LIKE też nawet LIKE z jednym znakiem % po którejś stronie stringu jednak LIKE z % po obu stronach jest strasznie wolne. Regexp zaś sądzę, że działa jak LIKE %% bo nie dość, że lata po wszystkich stringach które musi dopasować podobnie jak LIKE %% to jeszcze w dodatku musi sprawdzać pod względem poprawności z wyrażeniem regularnym...wystarczy zrobić test. Zrób automatem np. w php który wprowadzi Ci do tabelki(tak z 10 kolumn) losowe dane tekstowe ale to takie totalne. I potem poszukaj za pomocą regexp jakiegoś lotto znaku np. axt potem zrób to samo tylko z LIKE. Sądzę, że powinno być znacznie szybsze ale pewności nie mam bo benchmarków nigdy nie widziałem.
majestiq
Oki, Dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.