SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 17.11.2004, 13:01   #1
TP-Member
 
Registriert seit: Aug 2004
MrDevil macht alles soweit korrekt

LEFT JOIN - führt zu starker last in verbindung mit Groub by


Habe zu starke last durch diese Abfrage!

$sql = "SELECT u.user_id, u.user_name, u.user_avatar, u.user_sex,
u.user_status, u.user_b_tag, u.user_b_monat, u.user_b_jahr, u.user_age,
u.user_plz, u.user_regdate, s.logged_in, s.s_user_id
FROM ".USER_TABLE." u
LEFT JOIN ".SESSION_TABLE." s ON s.s_user_id=u.user_id
WHERE u.user_status='0' $letter_man group by u.user_id ORDER BY $sort $S
limit $seite, $anzahlproseite";

laut Provider
Zitat"
vermutlich führt das "Join" Statement in Verbindung mit "Order By" zu
der Lastintensität des Query. Beide Teile lassen sich prinzipiell in
Programmlogik abbilden, was im Falle des "Join" durch mehrere getrennte
Abfragen zu realisieren ist, beim "Order By" durch eine Sortierung auf
das unsortierte Ergebnis des Query. In beiden Fällen würde mit Daten im
Hauptspeicher gearbeitet, was die Last vermutlich deutlich reduzieren
würde."

Was meint er mit aufteilen bz wie sieht sowas aus!?

Danke Euch

Geändert von MrDevil (17.11.2004 um 13:11 Uhr).
MrDevil ist offline   Mit Zitat antworten


Alt 17.11.2004, 13:11   #2
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Das ist ein stinknormaler Join über NUR 2 Tabellen. Die Last dürfte sogut wie garnicht spürbar sein, wenn die Keys korrekt gesetzt sind. Sind Sie das? Wie gross sind denn die Tabellen? Was steht in $letter_man drin?

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 17.11.2004, 13:18   #3
TP-Member
 
Registriert seit: Aug 2004
MrDevil macht alles soweit korrekt
also die Tabelen sind noch nicht sehr gross ca 6000 Datensätze die er durchsuchen muss mit dem JOIN zusammen nochmal ca 2000

$letter_man ist derzeit ohne bedeutung ist leer! Wird für späteres update benötigt...

Meine Table!....

::::::.
CREATE TABLE `user_db` (
`user_id` int(120) NOT NULL auto_increment,
`user_name` varchar(25) NOT NULL default '',
`user_vorname` varchar(120) NOT NULL default '',
`user_nachname` varchar(120) NOT NULL default '',
`user_strasse` varchar(120) NOT NULL default '',
`user_hnr` varchar(120) NOT NULL default '',
`user_password` varchar(32) NOT NULL default '',
`user_level` tinyint(4) NOT NULL default '0',
`user_regdate` int(11) NOT NULL default '0',
`user_lastlogon` int(11) NOT NULL default '0',
`user_count` int(120) NOT NULL default '0',
`user_posts` mediumint( NOT NULL default '0',
`user_new_privmsg` smallint(5) NOT NULL default '0',
`user_notify` tinyint(1) NOT NULL default '0',
`user_avatar` varchar(100) NOT NULL default '0',
`user_avatar_ok` int(1) NOT NULL default '0',
`user_mail` varchar(255) NOT NULL default '',
`user_actkey` varchar(32) NOT NULL default '',
`user_totaltime` int(11) NOT NULL default '0',
`user_b_tag` int(2) NOT NULL default '0',
`user_b_monat` int(2) NOT NULL default '0',
`user_b_jahr` int(4) NOT NULL default '0',
`user_sex` char(1) NOT NULL default '0',
`user_status` int(1) NOT NULL default '0',
`user_age` tinyint(4) NOT NULL default '0',
`user_plz` int(6) NOT NULL default '0',
`user_ort` varchar(120) NOT NULL default '',
`user_bundesland` varchar(120) NOT NULL default '',
`user_land` varchar(50) NOT NULL default '',
`user_search_art` int(2) NOT NULL default '0',
`user_search_sex` int(2) NOT NULL default '0',
`user_sternzeichen` int(2) NOT NULL default '0',
`see_user_mail` tinyint(4) NOT NULL default '0',
KEY `user_id` (`user_id`)
)



und die SESSIOn

CREATE TABLE `user_session` (
`UID` int(10) unsigned NOT NULL auto_increment,
`ID` varchar(35) NOT NULL default '',
`JTime` int(15) NOT NULL default '0',
`Time` int(15) NOT NULL default '0',
`Expire` int(10) NOT NULL default '0',
`IP` varchar(32) NOT NULL default '',
`UserAgent` varchar(255) NOT NULL default '',
`logged_in` int(1) NOT NULL default '0',
`s_user_id` int(1) NOT NULL default '0',
PRIMARY KEY (`UID`)
)
MrDevil ist offline   Mit Zitat antworten
Alt 17.11.2004, 13:24   #4
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
@usertabelle:
warum nur key und nicht primary key?

@sessions:
überhaupt kein index auf s_user_id vorhanden!!
Stuck Mojo ist offline   Mit Zitat antworten
Alt 17.11.2004, 13:29   #5
TP-Member
 
Registriert seit: Aug 2004
MrDevil macht alles soweit korrekt
nee kein Index auf Session ist das schlimm??
Hab glaub ich mal gelesen das das nicht wichtig sei...

"warum nur key und nicht primary key?"
hmmm das frag ich mich auch gerade... ist da ein unterschied

können diese beiden Fehler zu so einer last führen?

Mein Problem ist ja nun das der Server in die Knie geht sobald die SESSIONS mit ins spiel kommen ... die brauch icha ebr die abfrage um zu schaun ob der user bez die User online sind!........
MrDevil ist offline   Mit Zitat antworten
Alt 17.11.2004, 14:03   #6
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Naja, wenn du keinen Index in in der Session-Tabelle setzt wird die gesamte Tabelle beim Join untersucht. Existiert ein Index auf die Spalte, aufder du den Join machst, dann "weiss" die Datenbank bereits welche Datensätze zu welchem Index gehören... Das weiss ist mit absicht in "... aber sollte die Sache etwas klarer machen

Probiers doch einfach mal?

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
LEFT JOIN - führt zu starker last in verbindung mit Groub by LEFT JOIN - führt zu starker last in verbindung mit Groub by
« Nested Sets und SQL-Querys | Kalender / Datum »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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
Ärger mit Chef wegen WebDesign-Auftrag wildmieze Archiv 4 18.08.2004 16:25
Welche Grafikkarte ist die schnellste Poser5? rolli220656 Hardware 2 14.08.2004 01:42
FTP Verbindung sehr langsam - Woran liegts?? schmali Server & Provider 15 08.07.2004 13:16
Hoverprobleme mit Unterlinks, (mal wieder) . .HEUTE!!! mit OVERLIB :) Gutschy HTML Puristen 7 11.07.2003 16:19
ftp verbindung problem... vranjanac Dreamweaver 3 30.06.2003 04:16


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

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67