php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.01.2006, 05:13  
Gast
 
Beiträge: n/a
Standard Suche in einer Datenbank optimieren.

Habe derzeit folgendes Script um meine Buchdatenbank zu durchsuchen
habe nun aber Angst das bei steigender Buchanzahl die Geschwindigkeit
leidet bzw. sogar Fehler durch Puffer oder Zeit Überläufe entstehen.
Der SQL Befehl wird hiermit generiert und danach mit mysql_query
ausgeführt und per while Schleife und mysql_fetch_array dargestellt.
PHP-Code:
<?php
    
if (isset($_POST['SuchString'])) {
        
$SuchString $_POST['SuchString'];
        
$sql "SELECT * FROM bestand WHERE Archiv = '' AND ( ";
        if ( isset ( 
$_POST['BestandID'] ) )                { $sql .= "OR BestandID LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Systematik'] ) )                { $sql .= "OR Systematik LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['ISBN'] ) )                            { $sql .= "OR ISBN LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Verfasser'] ) )                { $sql .= "OR Verfasser LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['VerfasserAngabe'] ) )    { $sql .= "OR VerfasserAngabe LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Titel'] ) )                        { $sql .= "OR Titel LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['TitelZusatz'] ) )            { $sql .= "OR TitelZusatz LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Verlag'] ) )                        { $sql .= "OR Verlag LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Ort'] ) )                            { $sql .= "OR Ort LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Zugangsnummer'] ) )        { $sql .= "OR Zugangsnummer LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Umfang'] ) )                        { $sql .= "OR Umfang LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Jahr'] ) )                            { $sql .= "OR Jahr LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Auflage'] ) )                    { $sql .= "OR Auflage LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Anzahl'] ) )                        { $sql .= "OR Anzahl LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Preis'] ) )                        { $sql .= "OR Preis LIKE '%".$SuchString."%' "; }
        if ( isset ( 
$_POST['Stichwort'] ) )                { $sql .= "OR Stichwort LIKE '%".$SuchString."%' "; }
        
$sql str_replace"AND ( OR""AND ( "$sql);
        
$sql .= " )";
    }
?>
Der Katalog wird etwa mal 6000 bis 10000 Bücher enthalten. Derzeit läuft es noch gut (200 Bücher) aber wenn mal alles eingegebn ist, tja was dann????

:edit:1
Wäre es vielleicht Sinnvoller das SELECT nur auf den Primär Schlüssel zu setzen und die Anzeige dann mit Hilfe einer zweiten SQL Abfrage zur realisieren?

:edit:2
MySQL 3.23.58
PHP 4

:edit:3
Das updaten des SQL Servers ist nicht möglich.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.01.2006, 10:01  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
vielleicht hilft es Archiv-Einträge in eine Extra-Tabelle zu packen, damit diese nicht die Suche verlangsamen (Archiv = '')?
Wenn das nicht geht, mach die Spalte "Archiv" lieber zu einem INT-Feld, denn INT-Vergleiche sind viel schneller als String-Vergleiche.
Im SELECT nur die Primärschlüssel zu holen macht keinen Sinn, schließlich hast du die richtigen Zeilen ja schon getroffen.
Ansonsten fällt mir nur ein, (häufige) Suchanfragen zu cachen.

Aber 6000-10000 Einträge sind eigentlich auch nicht die Welt, müsste schon halbwegs flott gehen.
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Suche mit variabler Suchbegriffanzahl in MySQL Datenbank webbi Datenbanken 5 12.10.2006 17:06
[Erledigt] Erweiterung der Suche PHP Tipps 2007 2 01.12.2005 19:30
Suche in Datenbank realisieren Unbekanntes_Pferd PHP Tipps 2007 4 09.11.2005 16:22
Datenbank optimieren?! Datenbanken 3 22.10.2005 16:59
datenbank optimieren Datenbanken 4 16.09.2005 17:10
Mehrere Anwendungen eine Datenbank... Datenbanken 5 15.08.2005 11:22
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
mal wieder eine suche lomtas Datenbanken 0 12.07.2005 11:03
Suche Serveradmin für Erstinstallation und kontin. Betreuung Beitragsarchiv 0 10.05.2005 21:47
[Erledigt] Suche Datenbank Off-Topic Diskussionen 10 16.01.2005 20:35
Suche in Mysql Datenbank philipro PHP Tipps 2004-2 2 02.12.2004 17:44
Suche Datenbank & Emailsript Beitragsarchiv 8 02.11.2004 15:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbank suche, datenbank suche optimieren, php buchdatenbank, mysql datenbank optimieren, php datenbank optimieren, suche in datenbanken, suche in datenbank, datenbank optimieren script, http://www.php.de/datenbanken/35770-erledigt-suche-einer-datenbank-optimieren.html, buchdatenbank php, sql isset, search strings suchstrings, if isset datenbank, mysql suchstring, suche in der datenbank optimieren, suche in datenbank optimieren, suchstring datenbank, datenbanksuche optimierung, datenbank suchstrings, mysql like optimier

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.