Windows vs. Linux - extreme Zeitunterschiede

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

  • Windows vs. Linux - extreme Zeitunterschiede

    hi, ich habe eine etwas umfangreichere Query die ich versucht habe zu optimieren.

    Zur Zeit arbeite ich auf meinem Windowssystem und verwende nur ein XAMPP Paket.

    Mein Rechner:
    2,4 Ghz P4 HT
    512 MB Ram
    XP Pro
    160GB 7200upm

    Queryzeit: 24ms (!)

    Onlineserver:
    3 Ghz
    1GB Ram
    160 GB 7200upm
    Debian 3
    Queryzeit: 1,67ms (!!!)

    Home Linuxserver:
    300 Mhz
    128MB Ram
    Suse 9.1
    20 GB
    Queryzeit: 7ms

    liegt das nur an windows?
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

  • #2
    Re: Windows vs. Linux - extreme Zeitunterschiede

    Original geschrieben von Benny-one
    liegt das nur an windows?
    eventuell ist das Filesystem von Linux bei dem Query besser, weil es schnellere Zugriff erlaubt?
    Ich kann mir nicht vorstellen, dass ein Windows-Filesystem auf Performance achtet

    Was ist das denn für ein Query? Irgendwas..."besonderes"?

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

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

    Kommentar


    • #3
      PHP-Code:
      $sql 'SELECT t3.banner_id 
      FROM banner_placement_relationship t1 
      INNER JOIN banner_campaign t2 
      ON ( t1.placement_id="40" AND t2.campaign_id=t1.campaign_id AND t2.activate="1" 
      AND ((t2.max_view_activate="1" AND t2.max_view_count<=CURDATE() 
      AND t2.date_end>=CURDATE()) OR (t2.date_activate="0")) 
      AND ((t2.time_activate="1" 
      AND t2.time_start<=CURTIME() AND t2.time_end>=CURTIME()) OR (t2.time_activate="0")) 
      AND t2.show_sun="1" ) 
      INNER JOIN banner t3 ON (t3.campaign_id=t2.campaign_id) 
      ORDER BY RAND() LIMIT 1'

      das ist die query, sie ist aber noch nicht ganz fertig, da muss noch was mit rein. jedenfalls unter windows mega langsam unter linux sehr schnell.
      ich frage mich obs generell an linux liegt oder eventuell am xampp paket.
      Zuletzt geändert von Benny-one; 27.11.2005, 10:07.
      Sunshine CMS
      BannerAdManagement
      Borlabs - because we make IT easier
      Formulargenerator [color=red]Neu![/color]
      Herkunftsstatistik [color=red]Neu![/color]

      Kommentar


      • #4
        ka, ich hab auch xampp
        gib mal die Tabellen, dann probier ich den mal aus ^^
        (ein 2GHz, mit ~700 MB RAM, aber Windows/Programme auf der alten Festplatte, wenn das schneller als dein Rechner ist, würd ich sagen dein Rechner hat ein Problem )

        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
          Code:
          -- 
          -- Tabellenstruktur für Tabelle `banner`
          -- 
          
          CREATE TABLE `banner` (
            `banner_id` int(11) NOT NULL auto_increment,
            `campaign_id` int(11) NOT NULL default '0',
            `user_id` smallint(5) unsigned NOT NULL default '0',
            `banner_ad_type_id` int(11) NOT NULL default '0',
            `banner_name` varchar(50) NOT NULL default '',
            `banner_path` varchar(255) NOT NULL default '',
            `banner_url` varchar(255) NOT NULL default '',
            `banner_html` text NOT NULL,
            `banner_title` varchar(255) NOT NULL default '',
            `type` varchar(20) NOT NULL default '',
            `width` int(11) NOT NULL default '0',
            `height` int(11) NOT NULL default '0',
            `activate` tinyint(4) NOT NULL default '0',
            `admin_activated` tinyint(4) NOT NULL default '0',
            `default_banner` tinyint(4) NOT NULL default '0',
            `archived` tinyint(4) NOT NULL default '0',
            PRIMARY KEY  (`banner_id`),
            KEY `banner_id` (`banner_id`),
            KEY `activate` (`activate`),
            KEY `banner_name` (`banner_name`),
            KEY `banner_path` (`banner_path`),
            KEY `banner_url` (`banner_url`),
            KEY `banner_title` (`banner_title`),
            KEY `type` (`type`),
            KEY `width` (`width`),
            KEY `height` (`height`),
            KEY `campaign_id` (`campaign_id`)
          ) TYPE=MyISAM AUTO_INCREMENT=112 ;
          
          -- 
          -- Daten für Tabelle `banner`
          -- 
          
          INSERT INTO `banner` VALUES (106, 0, 1, 0, '', 'images/1133041756default_a.gif', 
          'http://localhost/phpmyadmin/', '', '', 'img', 468, 60, 0, 0, 1, 0);
          INSERT INTO `banner` VALUES (107, 42, 1, 1, 'Banner 1', 'images/11330422209.gif',
           'http://localhost', '', '', 'img', 468, 60, 0, 1, 0, 0);
          INSERT INTO `banner` VALUES (108, 43, 39, 1, 'Kunden Banner 1', 'images/113304285010.gif', 
          'http://localhost', '', '', 'img', 468, 60, 1, 0, 0, 0);
          INSERT INTO `banner` VALUES (109, 44, 40, 1, 'Kunden Banner 2', 'images/11330428861.gif',
           'http://localhost', '', '', 'img', 468, 60, 1, 0, 0, 0);
          INSERT INTO `banner` VALUES (111, 43, 39, 1, 'admin bei kunde', 'images/11330448584.gif',
           'asdasd', '', '', 'img', 468, 60, 1, 1, 0, 0);
          
          -- --------------------------------------------------------
          
          -- 
          -- Tabellenstruktur für Tabelle `banner_campaign`
          -- 
          
          CREATE TABLE `banner_campaign` (
            `campaign_id` int(11) NOT NULL auto_increment,
            `user_id` smallint(5) unsigned NOT NULL default '0',
            `campaign_title` varchar(255) NOT NULL default '',
            `max_view` int(11) NOT NULL default '0',
            `max_view_count` int(11) NOT NULL default '0',
            `max_view_activate` tinyint(4) NOT NULL default '0',
            `max_click` int(11) NOT NULL default '0',
            `max_click_count` int(11) NOT NULL default '0',
            `max_click_activate` tinyint(4) NOT NULL default '0',
            `date_start` date NOT NULL default '0000-00-00',
            `date_end` date NOT NULL default '0000-00-00',
            `date_activate` tinyint(4) NOT NULL default '0',
            `time_start` time NOT NULL default '00:00:00',
            `time_end` time NOT NULL default '00:00:00',
            `time_activate` tinyint(4) NOT NULL default '0',
            `show_mon` tinyint(4) NOT NULL default '0',
            `show_tue` tinyint(4) NOT NULL default '0',
            `show_wed` tinyint(4) NOT NULL default '0',
            `show_thu` tinyint(4) NOT NULL default '0',
            `show_fri` tinyint(4) NOT NULL default '0',
            `show_sat` tinyint(4) NOT NULL default '0',
            `show_sun` tinyint(4) NOT NULL default '0',
            `activate` tinyint(4) NOT NULL default '0',
            `admin_activated` tinyint(4) NOT NULL default '0',
            `archived` tinyint(4) NOT NULL default '0',
            PRIMARY KEY  (`campaign_id`),
            KEY `campaign_id` (`campaign_id`),
            KEY `user_id` (`user_id`),
            KEY `activate` (`activate`),
            KEY `max_view_activate` (`max_view_activate`),
            KEY `max_click_activate` (`max_click_activate`),
            KEY `date_activate` (`date_activate`),
            KEY `time_activate` (`time_activate`)
          ) TYPE=MyISAM AUTO_INCREMENT=45 ;
          
          -- 
          -- Daten für Tabelle `banner_campaign`
          -- 
          
          INSERT INTO `banner_campaign` VALUES (42, 1, 'Kampagne 1', 0, 0, 0, 0, 0, 0,
           '2005-11-26', '2006-11-26', 0, '00:00:00', 
          '00:00:00', 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0);
          INSERT INTO `banner_campaign` VALUES (43, 39, 'Kunden Kampagne 1', 0, 0, 0, 0, 0, 0, 
          '2005-11-26', '2006-11-26', 0, '00:00:00', 
          '00:00:00', 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0);
          INSERT INTO `banner_campaign` VALUES (44, 40, 'Kunden Kampagne 2', 0, 0, 0, 0, 0, 0, 
          '2005-11-26', '2006-11-26', 0, '00:00:00', 
          '00:00:00', 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0);
          
          -- --------------------------------------------------------
          
          -- 
          -- Tabellenstruktur für Tabelle `banner_placement_ad_types_relationship`
          -- 
          
          CREATE TABLE `banner_placement_ad_types_relationship` (
            `placement_id` int(11) NOT NULL default '0',
            `banner_ad_type_id` int(11) NOT NULL default '0',
            PRIMARY KEY  (`placement_id`,`banner_ad_type_id`)
          ) TYPE=MyISAM;
          
          -- 
          -- Daten für Tabelle `banner_placement_ad_types_relationship`
          -- 
          
          INSERT INTO `banner_placement_ad_types_relationship` VALUES (40, 1);
          INSERT INTO `banner_placement_ad_types_relationship` VALUES (40, 2);
          
          -- --------------------------------------------------------
          
          -- 
          -- Tabellenstruktur für Tabelle `banner_placement_relationship`
          -- 
          
          CREATE TABLE `banner_placement_relationship` (
            `placement_id` int(11) NOT NULL default '0',
            `campaign_id` int(11) NOT NULL default '0',
            PRIMARY KEY  (`placement_id`,`campaign_id`)
          ) TYPE=MyISAM;
          
          -- 
          -- Daten für Tabelle `banner_placement_relationship`
          -- 
          
          INSERT INTO `banner_placement_relationship` VALUES (40, 42);
          INSERT INTO `banner_placement_relationship` VALUES (40, 43);
          INSERT INTO `banner_placement_relationship` VALUES (40, 44);
          SQL-Statement
          Code:
          SELECT t3.banner_id 
          FROM banner_placement_relationship t1 INNER JOIN banner_campaign t2 
          ON ( t1.placement_id="40" AND t2.campaign_id=t1.campaign_id AND t2.activate="1" 
          AND ((t2.max_view_activate="1" AND t2.max_view_count<=CURDATE() 
          AND t2.date_end>=CURDATE()) OR (t2.date_activate="0")) 
          AND ((t2.time_activate="1"
           AND t2.time_start<=CURTIME() AND t2.time_end>=CURTIME()) 
          OR (t2.time_activate="0")) AND t2.show_sun="1" ) 
          INNER JOIN banner t3 
          ON (t3.campaign_id=t2.campaign_id) 
          INNER JOIN banner_placement_ad_types_relationship t4 
          ON (t4.banner_ad_type_id=t3.banner_ad_type_id) ORDER BY RAND() LIMIT 1
          Lizenz: GPL
          Zuletzt geändert von Benny-one; 27.11.2005, 10:23.
          Sunshine CMS
          BannerAdManagement
          Borlabs - because we make IT easier
          Formulargenerator [color=red]Neu![/color]
          Herkunftsstatistik [color=red]Neu![/color]

          Kommentar


          • #6
            außer das deine Abfrage 0 Ergebnis bringt, braucht mein Debian Rechner dafür 0,0009 Sekunden.
            Du solltest dir eventuell mal die Tuningmöglichkeiten in der my.cnf Konfigurationdatei ansehen.
            TBT

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


            PHP 2 AllPatrizier II Browsergame

            Kommentar


            • #7
              Zeige Datensätze 0 - 0 (1 insgesamt, die Abfrage dauerte 0.0297 sek)
              ...
              wobei ich das nicht sonderlich langsam finde für den Query mit nem Join über 4 Tabellen ^^,


              (@tbt
              gab bei mir übrigens nen Datensatz zurück...)

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

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

              Kommentar


              • #8
                @ghostgambler: ach ja?

                Zeige Datensätze 0 - 0
                TBT

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


                PHP 2 AllPatrizier II Browsergame

                Kommentar


                • #9
                  ja. hast du mal im PMA weiter unten geschaut?

                  0 = 1 (der fängt bei 0 an zu zählen.)
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    es hätte gereicht den Satz weiterzulesen -.-
                    Zeige Datensätze 0 - 0 (1 insgesamt, die Abfrage dauerte 0.0297 sek)

                    aber ich gebe zu, ich war auch kurz verwirrt

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

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

                    Kommentar

                    Lädt...
                    X