SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.03.2008, 15:23:59
Xian Xian ist offline
Anfänger
 
Registriert seit: Mar 2008
Beiträge: 1
Spruch-Suche: MySQL-Query verbessern & optimieren

Ich habe hier eine (relativ zufällig rausgepickte) MySQL-Abfrage für eine Spruch-Suche für meine Webseite:

Code:
SELECT spruch . *
FROM spruch, skat
WHERE 1
AND spruch.lng = 'de'
AND (
spruch.spruch LIKE "%a%"
OR spruch.spruch LIKE "a%"
OR spruch.spruch LIKE "%a"
)
AND spruch.autor LIKE "%bla%"
AND spruch.date >1097359200
AND spruch.user LIKE "%e%"
AND (
spruch.vote_sum / spruch.vote_count
) >=1
AND kat.spruch_id = spruch.id
GROUP BY spruch.id
ORDER BY kat.kat_id ASC , spruch.date DESC
Nun ist diese Abfrage bei über 15.000 Sprüchen (Tendenz steigend) ziemlich langsam.
Was kann ich verbessern, damit sie schneller ausgeführt wird? Wo sind Sicherheitslücken & Risiken drin?


Zur Erklärung:
Ich habe 2 Tabellen, spruch (in der der Spruch eingetragen ist) und kat (wo eine Verknüpfung zwischen Spruch und Kategorie stattfindet).

Ich suche nach Sprüchen auf deutsch, in denen irgendwo im Spruch ein "a" vorkommt.
Der Autor ist "bla", die Sprüche sollen neuer als ein Datum sein.
Der Benutzer, der den Spruch eingetragen hat, soll ein "e" im Namen haben und die Bewertung (bewertungen/bewertende) soll 1 oder besser sein.
Sortiert wird das ganze nach Kategorie (und dann nach Datum). Da ein Spruch mehrere Kategorien haben kann, aber nur 1x vorkommen soll, wird das alles per GROUP zusammengefasst.

Was kann ich daran noch verbessern?

Danke für eure Vor- und Ratschläge.

Xian
Mit Zitat antworten
  #2  
Alt 24.03.2008, 16:04:59
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: Spruch-Suche: MySQL-Query verbessern & optimieren

Hi!

Schau Dir mal die Möglichkeiten der MySQL-Volltextsuche an:

-> http://dev.mysql.com/doc/refman/5.1/...xt-search.html
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #3  
Alt 13.04.2008, 19:55:19
Zero Uncool Zero Uncool ist offline
Anfänger
 
Registriert seit: Apr 2008
Beiträge: 5
AW: Spruch-Suche: MySQL-Query verbessern & optimieren

Hi Xian,

Zitat:
(
spruch.spruch LIKE "%a%"
OR spruch.spruch LIKE "a%"
OR spruch.spruch LIKE "%a"
)
spruch.spruch LIKE "%a%" reicht, der Rest ist hier überflüssig.

Queries werden von rechts nach links abgearbeitet, darum sollten ganz rechts die Bedingungen stehen, die das Ergebnis am stärksten einschränken. Der Join (kat.spruch_id = spruch.id) sollte möglichst als Letztes ausgeführt werden.

Am Entscheidendsten ist aber, dass zumindest autor, user und spruch indiziert sind.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Lost connection to MySQL server during query Domi MySQLi/PDO/(MySQL) 2 26.07.2007 09:49:32
MySQL Query zu langsam Domi MySQLi/PDO/(MySQL) 1 29.09.2006 21:53:57
Suche mySQL Funktion A]n[OLIS MySQLi/PDO/(MySQL) 2 27.03.2004 13:24:08
MySQL Invalid Query!! :( Gentlemani PHP Grundlagen 3 28.01.2003 15:44:41
SUCHE groooooße MySQL Datenbank (kostenlos) mad-boy PHP für Fortgeschrittene und Experten 5 30.10.2002 11:43:19


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:30:47 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt