Optimizier unterschiedlich???

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Optimizier unterschiedlich???

    Hallo,

    ich habe gerade ein ganz arges Problem,
    auf dem Entwicklungsrechner läuft eine SQL Anweisung mit folgendem Explain supper schnell
    Code:
    id 	select_type 	table 	type 	possible_keys 	key 	key_len 	ref 	rows 	Extra
    1 	SIMPLE 	b 	index 	antrag2_1,antrag2_2 	antrag2_1 	6 	NULL 	1794 	Using index; Using temporary; Using filesort
    1 	SIMPLE 	a 	eq_ref 	PRIMARY,geholt_i,bewid_i 	PRIMARY 	3 	aBis2_sven.b.postid_i 	1 	Using where
    1 	SIMPLE 	f 	eq_ref 	PRIMARY 	PRIMARY 	3 	aBis2_sven.a.bewid_i 	1 	 
    1 	SIMPLE 	c 	ref 	PRIMARY,hsid_i,bewid_i,hsid_i_2,semid_i 	bewid_i 	3 	aBis2_sven.a.bewid_i 	3 	Using where
    1 	SIMPLE 	d 	ref 	l_zahant_1,antrid_i 	l_zahant_1 	3 	aBis2_sven.c.antrid_i 	1
    auf dem Produktionsserver super langsam mit dem Explain
    Code:
     id  	 select_type  	 table  	 type  	 possible_keys  	 key  	 key_len  	 ref  	 rows  	 Extra
    1 	SIMPLE 	d 	ALL 	l_zahant_1,antrid_i 	NULL 	NULL 	NULL 	94340 	Using temporary; Using filesort
    1 	SIMPLE 	c 	eq_ref 	PRIMARY,hsid_i,bewid_i,hsid_i_2,semid_i 	PRIMARY 	3 	aBis2.d.antrid_i 	1 	 
    1 	SIMPLE 	a 	ref 	PRIMARY,geholt_i,bewid_i 	geholt_i 	4 	const,aBis2.c.bewid_i 	13 	Using where
    1 	SIMPLE 	f 	eq_ref 	PRIMARY 	PRIMARY 	3 	aBis2.a.bewid_i 	1 	 
    1 	SIMPLE 	b 	eq_ref 	antrag2_1,antrag2_2 	antrag2_1 	6 	aBis2.c.hsid_i,aBis2.a.postid_i,aBis2.c.semid_i 	1 	Using index
    auf beiden Rechner ist MySQL 4.1 installiert

    die Anweisung ist
    Code:
    SELECT
    	c.antrid_i,
    	a.bewid_i,
    	b.semid_i, a.eingan_d,
    	SUM( d.ist_f )			ist,
    	c.soll_f				soll,
    	b.hsid_i,
    	f.akfzid_i
    FROM antrag2 b
    INNER JOIN posteing a
    	ON ( b.postid_i = a.postid_i )
    INNER JOIN bewerber f
    	ON ( a.bewid_i = f.bewid_i )
    INNER JOIN antrag c
    	ON ( a.bewid_i = c.bewid_i
    		AND b.hsid_i = c.hsid_i
    		AND b.semid_i = c.semid_i )
    INNER JOIN l_zahant d
    	ON ( c.antrid_i = d.antrid_i )
    WHERE a.geholt_i = 0
    GROUP BY c.antrid_i
    HAVING ist >= soll - 5
    Jemand Ideen woran dies liegen kann?
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

  • #2
    Re: Optimizier unterschiedlich???

    Sind die Tabellen auch in beiden Fällen exakt gleich aufgebaut?

    Insb., dass einmal für das Lesen aus Tabelle d ein Key benutzt wird, im anderen Falle aber nicht, macht doch ein wenig stutzig - sind die Indices auch beide Male gleich gesetzt?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      die Tabellen sind exakt gleich,
      ein repair table über die komplette DB hat alles wieder gerichtet

      ???
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        Original geschrieben von TBT
        die Tabellen sind exakt gleich,
        ein repair table über die komplette DB hat alles wieder gerichtet

        ???
        Index kaputt?
        Kommt bei uns auch ab und an mal bei den großen Tabellen vor (= >500MB),
        allerdings ist der Key dann so kaputt, dass die Tabelle überhaupt nix mehr zurück liefert... tjo, wer weiß *zuck*

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          gearbeitet hat er,
          auch völlig korrekte SQL Ergebnisse

          nur ewig langsam ...
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #6
            • Gleichen oder gleich viele Einträge auf beiden Seiten?
            • Ist der eine Windows und der andere Linuxserver (MySQL ist um ein vielfaches unter Windows langsamer).
            • Unterschiedliche Systemauslastung?
            Sunshine CMS
            BannerAdManagement
            Borlabs - because we make IT easier
            Formulargenerator [color=red]Neu![/color]
            Herkunftsstatistik [color=red]Neu![/color]

            Kommentar


            • #7
              das Problem ist doch schon gelöst

              und nein, es sind baugleiche Rechner, MySQL unterscheidet sich in der Version um 0.0.03, und der Dev-Rechner hat ein MySQL Dump vom Produktionsrechner
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Kommentar

              Lädt...
              X