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 ::

Der CSS-Problemlöser

Der CSS-Problemlöser 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 > SELFPHP > 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
  #11  
Alt 23.05.2005, 16:02:52
EyeDacor EyeDacor ist offline
Anfänger
 
Registriert seit: Jun 2003
Alter: 37
Beiträge: 135
AW: die schnellste möglichkeit zu prüfen, ob ein eintrag existiert

mehrere anwendungen :)
__________________
...
Mit Zitat antworten
  #12  
Alt 23.05.2005, 17:41:01
Benutzerbild von dachris
dachris dachris ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 401
AW: die schnellste möglichkeit zu prüfen, ob ein eintrag existiert

Kommt nat. auf die Komplexität der anfragen an....

Aber im Prinzip sollte das kein Problem sein....

Wenn die Queries optimiert sind, kannst du auch an ein Halten der Datenbank im Speicher denken.....Das boostet die Datenbank nochmal um einiges (Aber dazu brauchst du wohl einen rootServer....)

Auch ein Caching der Queries macht Sinn.....

Meistens verändern sich viele Ergebnisse der Abfragen nicht....

Dann noch einige Tips

Auf Spielzeug wie who is online und so'n Zeug oder dynamische Ausgabe von countern verzeichten...
Dann können manche Schreibzugriffe beseitigt werden....
d.h. Userlogging in der Datenbank macht keinen Sinn.....Schreibzugriffe auf Dateien sind performanter....
Also einfach das SQLstatement in eine Datei schreiben....und dann via cron jede Stunde oder pro Tag in die Datenbank schreiben.....
Dann auf Datenbanksessions verzeichten....updates sind prinzipiell langsam....
Dann auf joins verzichten (langsam)
Ein generelles Caching von dynamischen Seiten bedenken.....(welche Inhaltsseite muss denn wirklich dynamisch on the fly generiert werden)


Naja wenn man das so halbwegs berücksichtigt dann laufen auch bedeutend mehr queries locker ab.....
Mit Zitat antworten
  #13  
Alt 23.05.2005, 18:33:31
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
AW: die schnellste möglichkeit zu prüfen, ob ein eintrag existiert

Habe jetzt nicht alles ganz genau durchgelesen, aber hast du mal probiert alles in ein query anzugeben? Die Datenbank kann dann viel besser optimieren und muss nicht für jedes query eine Verbindung aufbauen.

Ich kenne ja deine genauen insterts nicht, aber eventuell könntest du die von der anderen Tabelle gleich reinnehmen.

Also sowas in dem Stil:
Code:
INSERT INTO tabelle (a,b,c) VALUES (
    SELECT (d, e, f) 
    FROM tabelle2
    WHERE my_string IN (
        SELECT ein_string FROM andere_tabelle
    )
);
edit:
ansonsten gäbe es da noch WHERE exists

Hier ein Codebeispiel

Code:
SELECT t.Name
FROM Tabelle t
WHERE NOT EXISTS (
    SELECT *
    FROM AndereTabelle a
    WHERE a.Text = t.Text)
Not in ist aber optimierungstechnisch besser, da diese Anfrage unkorreliert ist (muss nicht mehrfach ausgewertet werden), im Gegensatz zu EXISTS

Geändert von Gweilo (23.05.2005 um 18:38:25 Uhr)
Mit Zitat antworten
  #14  
Alt 23.05.2005, 23:45:26
EyeDacor EyeDacor ist offline
Anfänger
 
Registriert seit: Jun 2003
Alter: 37
Beiträge: 135
AW: die schnellste möglichkeit zu prüfen, ob ein eintrag existiert

danke gweilo, das problem hat sich aber mittlerweise gelöst. :)

@ dachris: danke für die tip(p)s, jedoch habe ich mit derartigen sachen bei meiner anwendung nichts zu tun (irgendeine seite mit sachen wie "who is online" und so nen kram)

es ist eine anwendung, die auf eine bestehendes netzwerkprotokoll zugreift und daten auswertet... da versteht man das 'komplette' rfc, hat etwa ein halbes jahr planung, testing und entwicklung, und dann kommen einen sachen wie mysql/performance in den weg... das 'nervt' schon etwas ^^

wie gesagt, thema erledigt und nochmal danke an alle beteiligten und den hint auf UNIQUE :)
__________________
...
Mit Zitat antworten
  #15  
Alt 24.05.2005, 10:35:33
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: die schnellste möglichkeit zu prüfen, ob ein eintrag existiert

> Dann auf joins verzichten (langsam)

schon mal mit subqueries gearbeitet? das verhältniss von subquery zu join ist wie trabi zu ferrari...und wie will man auf joins verzichten, bei einer einigermaßen nicht-redundanten datenbankstruktur?
Mit Zitat antworten
  #16  
Alt 25.05.2005, 14:34:40
Benutzerbild von dachris
dachris dachris ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 401
AW: die schnellste möglichkeit zu prüfen, ob ein eintrag existiert

join ist ein nettes feature......nur eben langsam....(Klar subs sind noch langsamer)...

d.h. man muss sich immer die Frage stellen, brauchts das wirklich (bei jedem Aufruf) oder kann ichs nicht mit intelligenten Cachingmechanismen lösen....

d.h. ich will join nicht verbannen sondern die Frage in den Raum werfen obs jedesmal nötig ist....

Es kommt halt immer auf die Dynamik der DAten an....

d.h. Daten (also auch die Abfrragen danach) welche sich so gut wie nie verändern.....oder z.B. Suchabfragen lassen sich wunderbar cachen....

Nehmen wir als einfaches Beispiel die Abfrage nach einem Profil in einem Forum....

Da wird aus 5 verschiedenen Tabellen (user, gruppe, evtl anschrift, letzte Beiträge) jedesmal eine Abfrage gestartet.... Die gesamte Abfrage ist also bis zur Veränderung dieser Daten immer die gleiche....wird aber trotzdem immer in der Gesamtheit ausgeführt....

Jetzt könnte man hergehen und beim ersten mal die Userdaten(user, gruppe, anschrift) nach der Abfrage in eine Datei schreiben, die Datei heisst dann wie die Abfrage nur mit md5 überschlüsselt....
Das Speicherformat könnte z.B. xml sein...oder was auch immer

jetzt muss nur noch eine einige Abfrage stattfinden nach den letzten Beiträgen....(wobei die natürlich auch cachebar ist....)

So hat man aus einem langen join eine einzige performante Abfrage gemacht
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
prüfen, ob relation existiert? ingo MySQLi/PDO/(MySQL) 4 20.09.2004 14:50:24
Eintrag in DB prüfen -TC- MySQLi/PDO/(MySQL) 3 04.03.2004 17:13:35
Eintrag schon vorhanden prüfen... Hanna PHP für Fortgeschrittene und Experten 20 22.06.2003 17:27:32
Frage zu mySQL Auto Increment Wauzy PHP für Fortgeschrittene und Experten 1 13.03.2003 23:29:15
Formularfelder auf Eintrag prüfen shewolf PHP Grundlagen 3 16.10.2002 11:09:11


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:07:44 Uhr.


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


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