Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zoptymalizować zapytanie do bazy danych
Forum PHP.pl > Forum > PHP
radmistrz2
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).
phpion
Załóż index na kolumnie post_title. Przy korzystaniu z ciąg% (bez % na początku) na pewno pomoże.
radmistrz2
niestety nie moge usunąć % bo skrypt tego wymaga.
phpion
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.
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.