Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak zoptymalizować zapytanie do bazy danych
radmistrz2
post
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 4
Dołączył: 2.03.2008

Ostrzeżenie: (10%)
X----


Mam takie zapytanie:
  1. <?php
  2. $tresc_zapytania2 = 'SELECT `id`, `post_title` FROM `wp_posts` WHERE post_title LIKE "'.$keyword[0].'%" ORDER BY `id` DESC LIMIT 0, 10';
  3. ?>


Trzeba mi tylko 10 rekordów. Jesli wywale to zapytanie ze strony to ładuje mi się prawie od razu a jeśli mam to zapytanie to trwa to kilka sekund ( baza ma ponad 300 000 rekordów).
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Załóż index na kolumnie post_title. Przy korzystaniu z ciąg% (bez % na początku) na pewno pomoże.
Go to the top of the page
+Quote Post
radmistrz2
post
Post #3





Grupa: Zarejestrowani
Postów: 143
Pomógł: 4
Dołączył: 2.03.2008

Ostrzeżenie: (10%)
X----


niestety nie moge usunąć % bo skrypt tego wymaga.
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie masz nic usuwać z zapytania. Musisz utworzyć indeks na kolumnie post_title. Nic więcej. Przy konstrukcji, gdzie LIKE zaczynasz od ciągu, a nie od %, przy wyszukiwaniu zostanie użyty ów indeks, co zdecydowanie przyspieszy zapytanie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 22:53