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

Webseiten professionell erstellen

Webseiten professionell erstellen 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 09.12.2008, 09:03:03
daudi daudi ist offline
Anfänger
 
Registriert seit: Dec 2008
Alter: 43
Beiträge: 16
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Gute Idee, hilft nur nix, weil die db trotzdem VORHER alle sortieren muß, um überhaupt zu wissen, welches die ersten 100 sind...



Ich hätte viel lieber das SQL Statement gesehen..
evtl sogar das Ergebnis von EXPLAIN

z.B.
Code:
EXPLAIN SELECT *
FROM tabelle
ORDER BY id DESC
LIMIT 100,30
Ein implizieter Join kann heftig Schaden anrichten (Zeit fressen).
Die Abfrage ist simple:
SELECT * FROM `table` WHERE 1 order by t_id desc limit 10,10

Explain gibt aus:
id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE table index NULL PRIMARY 4 NULL 1231988


Die Struktur:

CREATE TABLE `table` (
`t_id` int(11) NOT NULL auto_increment,
`t_verkaeufer` mediumint(11) unsigned NOT NULL default '0',
`t_uberschrift` varchar(250) collate latin1_german1_ci NOT NULL default '',
`t_beschreibung` text collate latin1_german1_ci NOT NULL,
`t_zustand` tinyint(1) default '0',
`t_baujahr` smallint(5) default '0',
`t_preis` double(10,2) default '0.00',
`t_bild1` varchar(50) collate latin1_german1_ci default 'none',
`t_bild2` varchar(50) collate latin1_german1_ci default 'none',
`t_bild3` varchar(50) collate latin1_german1_ci default 'none',
`t_katalog` smallint(11) unsigned NOT NULL default '0',
`t_modele` varchar(255) collate latin1_german1_ci NOT NULL default '0',
`t_modell` varchar(15) collate latin1_german1_ci NOT NULL default '0',
`t_hersteller` smallint(11) NOT NULL default '0',
`t_status` tinyint(3) NOT NULL default '0',
`t_datum_start` date NOT NULL default '0000-00-00',
`t_datum_end` date NOT NULL default '0000-00-00',
`t_art` tinyint(1) NOT NULL default '0',
`t_erzeugt` timestamp NULL default CURRENT_TIMESTAMP,
`t_extra` varchar(15) collate latin1_german1_ci NOT NULL default '',
`t_path` varchar(15) collate latin1_german1_ci NOT NULL,
`t_export_id` varchar(25) collate latin1_german1_ci NOT NULL default '0',
`t_export_error` tinyint(3) NOT NULL default '0',
`t_kill` varchar(20) collate latin1_german1_ci NOT NULL,
`t_export_code` varchar(50) collate latin1_german1_ci NOT NULL,
`t_kbas` text collate latin1_german1_ci NOT NULL,
PRIMARY KEY (`t_id`),
KEY `t_verkaeufer` (`t_verkaeufer`),
KEY `t_hergestellt` (`t_hersteller`),
KEY `t_kill` (`t_kill`),
FULLTEXT KEY `t_uberschrift` (`t_uberschrift`,`t_beschreibung`),
FULLTEXT KEY `t_path_2` (`t_path`),
FULLTEXT KEY `t_modell_2` (`t_modell`,`t_kbas`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;

Danke für jede Idee

Geändert von daudi (09.12.2008 um 09:08:15 Uhr)
Mit Zitat antworten
  #12  
Alt 09.12.2008, 09:10:58
daudi daudi ist offline
Anfänger
 
Registriert seit: Dec 2008
Alter: 43
Beiträge: 16
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
Zitat von Crisps Beitrag anzeigen
Zeig mal bitte dein komplettes Tabellen-Schema und die vollständige Query - plus die Ausgabe von letzterem, wie von DokuLeseHemmung schon gesagt, mit EXPLAIN.

Ist das so schwer?
Nein, ist machbar :-).

alles ist da .

Danke für Hilfe

Geändert von daudi (09.12.2008 um 09:11:19 Uhr)
Mit Zitat antworten
  #13  
Alt 09.12.2008, 11:43:06
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
Die Abfrage ist simple:
SELECT * FROM `table` WHERE 1 order by t_id desc limit 10,10
WHERE 1
Wozu ist das da??

Geändert von DokuLeseHemmung (09.12.2008 um 11:43:38 Uhr)
Mit Zitat antworten
  #14  
Alt 09.12.2008, 11:50:31
daudi daudi ist offline
Anfänger
 
Registriert seit: Dec 2008
Alter: 43
Beiträge: 16
AW: Tabelle-Sortierung dauert sehr lang

Einfach "Platzhalter". 1(true) steht, wenn die Einträge einfach aufgelistet sind. Wenn nach irgendwas gesucht wird, wird anstatt 1 z.b. "WHERE t_verkaeufer=123" and t_preis=23.00".

Ich glaube, diese 1 macht keine Auswirkung, habe mit explain das geprüft.
Mit Zitat antworten
  #15  
Alt 09.12.2008, 12:00:42
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: Tabelle-Sortierung dauert sehr lang

Code:
SELECT * FROM `table` WHERE 1 order by t_id desc limit 10,10
Ist die Query mit Limit also immer noch genauso langsam? Ich weiß zwar, dass durch Limit nur die Ergebnisse limitiert werden und nicht die verarbeiteten Datensätze, aber ich habe gedacht, dass das schon das Hauptproblem der langsamen Performance wäre.

Geändert von Crisps (09.12.2008 um 12:12:49 Uhr)
Mit Zitat antworten
  #16  
Alt 09.12.2008, 12:15:30
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
Zitat von daudi Beitrag anzeigen
SELECT *
jede wette, dass hier das problem liegt.

cx
Mit Zitat antworten
  #17  
Alt 09.12.2008, 12:15:53
daudi daudi ist offline
Anfänger
 
Registriert seit: Dec 2008
Alter: 43
Beiträge: 16
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
Zitat von Crisps Beitrag anzeigen
Code:
SELECT * FROM `table` WHERE 1 order by t_id desc limit 10,10
Ist die Query mit Limit also immer noch genauso langsam? Ich weiß zwar, dass durch Limit nur die Ergebnisse limitiert werden und nicht die verarbeiteten Datensätze, aber ich habe gedacht, dass das schon das Hauptproblem der langsamen Performance wäre.
Das limitieren hilft eigentlich nicht viel, da zuvor die Tabelle voll und ganz sortiert wird und nur dann Limit angewendet.
Mit Zitat antworten
  #18  
Alt 09.12.2008, 12:19:42
daudi daudi ist offline
Anfänger
 
Registriert seit: Dec 2008
Alter: 43
Beiträge: 16
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
Zitat von cortex Beitrag anzeigen
jede wette, dass hier das problem liegt.

cx
Naja,

explain macht keinen unterschied ob SELECT * FROM oder SELECT t_id, t_verkauefer FROM ist. Der Ref ist NULL

Geändert von daudi (09.12.2008 um 12:19:52 Uhr)
Mit Zitat antworten
  #19  
Alt 09.12.2008, 12:25:30
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
Zitat von cortex Beitrag anzeigen
jede wette, dass hier das problem liegt.

cx
Stimmt, bei einer Millionen Einträge wird sich das besonders schlimm auswirken - Ich hab grad mal eine Dummy-Tabelle angelegt und das ge-Benchmarked; die Query war um über das doppelte schneller. Also, daudi, wenn möglich versuch nur die wirklich gebrauchten Spalten zu selektieren. Das sollte man zwar immer so machen, aber bei solchen großen Tabellen wirkt sich das "*" noch schlimmer aus.


Aber brauchst du wirklich alle Einträge auf einmal? Wird das auf der Seite nicht irgendwie nach Hersteller, Datum, o.ä. gefiltert?
Mit Zitat antworten
  #20  
Alt 09.12.2008, 13:23:09
daudi daudi ist offline
Anfänger
 
Registriert seit: Dec 2008
Alter: 43
Beiträge: 16
AW: Tabelle-Sortierung dauert sehr lang

Ok, ich versuche nur die nötige felder abfragen, aber es werden fast alle :-)


Ja, ich brauche alle Einträge auf einmal auf der main-seite. Im weiteren werden sie nach Katalog, Hersteller usw. gefiltert
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
Tabelle verliert Datensätze ?! TuxCommander MySQLi/PDO/(MySQL) 5 26.05.2008 16:11:03
tabelle mehrfach abrufen weko32^1 MySQLi/PDO/(MySQL) 5 21.01.2007 14:14:02
Problem dynamische Tabelle aber wie? Pixelschubser PHP für Fortgeschrittene und Experten 1 08.10.2005 18:16:24
MySQL, Sortierung nach Feld in 2ter Tabelle bombel PHP für Fortgeschrittene und Experten 8 17.06.2003 18:26:45
MySQL - tabelle in tabelle Gweilo PHP für Fortgeschrittene und Experten 4 09.11.2002 18:41:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:49:18 Uhr.


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


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