php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-06-2008, 22:10
martin2
 Registrierter Benutzer
Links : Onlinestatus : martin2 ist offline
Registriert seit: May 2005
Ort: Duisburg
Beiträge: 79
martin2 ist zur Zeit noch ein unbeschriebenes Blatt
martin2 eine Nachricht über Skype™ schicken
Standard Problemem mit MYSQL / SELF JOIN

sobald ich folgenden Self Join über phpmyadmin ausführe
PHP-Code:
SELECT a.vergleichsnr,b.vergleichsnr FROM vergleichsnummern ,vergleichsnummern b WHERE 
a
.herst=999 AND a.aktualitaet
AND a.masternr=b.masternr 
wird der mysql Client verrückt....schnellt auf 50% Prozessorlast hoch und anch einer Weile kommt:
"die Webseite ist zu beschäftig um die Webseite anzeigen zu können"
, und CGI/Fastcgi wird geschlossen....

Umgebung
Zend Studio
Zend platform
Mysql 5 Server
php 5
Apache 2

führe ich das ganze als mysqli query über php aus macht er das locker ohne zu mucken
__________________
<?php echo "ad astra"; ?>
www.utopiafuture.de

Geändert von martin2 (27-06-2008 um 22:12 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 27-06-2008, 22:16
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Du solltest diese Grundlagen beachten. Dann wirds vermutlich um einiges besser laufen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 27-06-2008, 22:29
martin2
 Registrierter Benutzer
Links : Onlinestatus : martin2 ist offline
Registriert seit: May 2005
Ort: Duisburg
Beiträge: 79
martin2 ist zur Zeit noch ein unbeschriebenes Blatt
martin2 eine Nachricht über Skype™ schicken
Standard

PHP-Code:
SELECT 
a
.vergleichsnr,
b.vergleichsnr FROM 
vergleichsnummern a INNER JOIN vergleichsnummern b USING
(masternr
WHERE a.herst=999 AND a.aktualitaet=AND b.herst!=999 
hat den selben effekt
__________________
<?php echo "ad astra"; ?>
www.utopiafuture.de
Mit Zitat antworten
  #4 (permalink)  
Alt 27-06-2008, 22:31
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

phpMyAdmin und dein Script liegen auf dem selben Server? Gibt es sonstige Unterschiede?

Letztendlich führt PMA ja auch nur ein mysql_query() aus.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5 (permalink)  
Alt 27-06-2008, 22:34
martin2
 Registrierter Benutzer
Links : Onlinestatus : martin2 ist offline
Registriert seit: May 2005
Ort: Duisburg
Beiträge: 79
martin2 ist zur Zeit noch ein unbeschriebenes Blatt
martin2 eine Nachricht über Skype™ schicken
Standard

in meinem script führe ich das mysqli aus

ansonsten keinen unterschied

hab die Query jetzt mal mit einem limt versehen

PHP-Code:
SELECT a.vergleichsnrb.vergleichsnr
FROM vergleichsnummern a
INNER JOIN vergleichsnummern b
USING 
masternr 
WHERE a.herst =999
AND a.aktualitaet =1
AND b.herst !=999
AND b.aktualitaet <5
LIMIT 0 
50 
kein Problem

vieleicht liegt es an der größe der Tabelle 1,6 millionen Datensätze....
__________________
<?php echo "ad astra"; ?>
www.utopiafuture.de

Geändert von martin2 (27-06-2008 um 22:41 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 28-06-2008, 11:18
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
vieleicht liegt es an der größe der Tabelle 1,6 millionen Datensätze....
Die sollte doch in MyAdmin genauso sein, oder nicht?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 28-06-2008, 13:48
martin2
 Registrierter Benutzer
Links : Onlinestatus : martin2 ist offline
Registriert seit: May 2005
Ort: Duisburg
Beiträge: 79
martin2 ist zur Zeit noch ein unbeschriebenes Blatt
martin2 eine Nachricht über Skype™ schicken
Standard

im php script hab ich mir einen view mit der query angelegt, kein Problem

ich galube ich hab einen bug in meinem mysql Server der wird jetzt auch bei

PHP-Code:
SELECT masternr,fnr FROM v_vergleichsnummern  WHERE vergleichsnr '12367'  LIMIT 0,20 
ganz langsam.... und es ist egal ob ich das über php oder pma abschiesse...
__________________
<?php echo "ad astra"; ?>
www.utopiafuture.de
Mit Zitat antworten
  #8 (permalink)  
Alt 28-06-2008, 13:52
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

@TobiaZ: Afaik schreibt PMA die Query um. Es wird einmal ein COUNT(*) für die Trefferzahl ausgeführt und einmal die eingegebene Query mit angehangenem LIMIT.

1,6 Mio. Datensätze sind eigentlich kein Problem für MySQL, sofern genügend Speicher vorhanden ist (am besten soviel, dass die Tabelle zweimal komplett reinpasst) und die richtigen Indizes gesetzt sind.
Schau dir mal SHOW STATUS und EXPLAIN deiner Query an. Beides gibt es auch irgendwo in PMA, aber aus dem Kopf weiß ich nicht wie man da hinkommt.
Mit Zitat antworten
  #9 (permalink)  
Alt 28-06-2008, 13:52
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:
Kann natürlich gut sein. Deinen Threads nach zu urteilen scheint da ja einiges nicht ganz rund zu laufen...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #10 (permalink)  
Alt 28-06-2008, 13:58
martin2
 Registrierter Benutzer
Links : Onlinestatus : martin2 ist offline
Registriert seit: May 2005
Ort: Duisburg
Beiträge: 79
martin2 ist zur Zeit noch ein unbeschriebenes Blatt
martin2 eine Nachricht über Skype™ schicken
Angry

OffTopic:
Kann natürlich gut sein. Deinen Threads nach zu urteilen scheint da ja einiges nicht ganz rund zu laufen...
[/QUOTE]

Oh ja und das ganze Problem hat angefangen als ich mir hier eine Oracle Datenbank installiert habe..... habe den Arbeitsspeicher von 1gig auf 4 erhöht danach lief eigendlich alles rund, aber seit der import abgeschlossen ist (von Oracle nach MySql) habe ich hier probleme die ich so noch garnicht kannte.... und ich mach das hier ja auch nicht erst seit 2 Wochen.... das Querys in unendliche laufen, die Meldung "Webseite ist zu beschäftigt um die Webseite anzuzeigen" ist typisch Windows genau wie "unbekannt hat unbekannten Fehler in unbekannt verursacht, unbekannt wird geschlossen"
__________________
<?php echo "ad astra"; ?>
www.utopiafuture.de
Mit Zitat antworten
  #11 (permalink)  
Alt 28-06-2008, 14:01
TheFish511
 Newbie
Links : Onlinestatus : TheFish511 ist offline
Registriert seit: Feb 2008
Beiträge: 76
TheFish511 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
SELECT masternr,fnr FROM v_vergleichsnummern  WHERE vergleichsnr '12367'  LIMIT 0,20 
Warum ist die vergleichsnr ein String?
Ich kann mir schon vorstellen, dass es bei 1,6 mio Datensätze ohne richtige Indezes langsam langsam wird.
Alos, gib mal ein paar mehr Infos, bitte.
Mit Zitat antworten
  #12 (permalink)  
Alt 28-06-2008, 14:09
martin2
 Registrierter Benutzer
Links : Onlinestatus : martin2 ist offline
Registriert seit: May 2005
Ort: Duisburg
Beiträge: 79
martin2 ist zur Zeit noch ein unbeschriebenes Blatt
martin2 eine Nachricht über Skype™ schicken
Standard

Warum ist die vergleichsnr ein String?

weil der Wert auch "1V456G3' sein könnte VARCHAR FELD

ein index auf vergleichsnr lässt sich nicht setzten da diese Spalte mehrer gleiche Werte enthalten kann, liesse sich vielleicht mit einem FULLTEXT umgehen. habe mir einen view gemacht der die zuordnungen eindeutiger hat, kann mir auch nicht erklären warum die orignialdatenbank aus Oracle so aufgebut wurde, da sind selbstbezüge drin, die ich so nie gemacht hätte, die artikel nummer ist nur zu ermitteln wenn die vergleichsnr eines bestimmten herstellers mit der manr eines anderen übereinstimmt.... fragt mich nicht nach dem sinn.... die tabelle ist so....
__________________
<?php echo "ad astra"; ?>
www.utopiafuture.de
Mit Zitat antworten
  #13 (permalink)  
Alt 28-06-2008, 14:35
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von martin2
ein index auf vergleichsnr lässt sich nicht setzten da diese Spalte mehrer gleiche Werte enthalten kann
Deswegen kannst du die Spalte nicht PRIMARY oder UNIQUE machen, aber einen INDEX kannst du sehr wohl anlegen.
Mit Zitat antworten
  #14 (permalink)  
Alt 28-06-2008, 14:40
martin2
 Registrierter Benutzer
Links : Onlinestatus : martin2 ist offline
Registriert seit: May 2005
Ort: Duisburg
Beiträge: 79
martin2 ist zur Zeit noch ein unbeschriebenes Blatt
martin2 eine Nachricht über Skype™ schicken
Standard

Zitat:
Deswegen kannst du die Spalte nicht PRIMARY oder UNIQUE machen, aber einen INDEX kannst du sehr wohl anlegen.
hab ich auch grade gemerkt.... navicat gibt einem dieses option phpmyadmin nicht... kannte bisher nur die UNIQUE bzw PRIMARY Variante bzw den FULLTEXT
__________________
<?php echo "ad astra"; ?>
www.utopiafuture.de

Geändert von martin2 (28-06-2008 um 14:43 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 28-06-2008, 14:50
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
phpmyadmin nicht
Natürlich kannst du auch mit (einer halbwegs aktuellen version von) phpMyAdmin einen normalen INDEX setzen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:50 Uhr.