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

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. 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)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 08.12.2008, 20:47:51
daudi daudi ist offline
Anfänger
 
Registriert seit: Dec 2008
Alter: 43
Beiträge: 16
Tabelle-Sortierung dauert sehr lang

Hallo,

vllt kann jemand mir helfen.

Ich verwalte eine Seite mit über 1Mio Datensätze in einer Tabelle. Tabelle selbst ist auch schon groß(Datenanteil ist fast 400MB).

Auf der Seite sollen die neusten Einträge als erste angezeigt werden, dafür wird jedes Mal vor der Ausgabe die Tabelle sortiert, nach dem Motto : "order by id desc" und das dauert sehr lange (bis 7-10 sec.), falls die Tabelle nicht cachiert ist.

So, vllt kann man diese Sortierung irgendwie vermeinden. ?

Geändert von daudi (08.12.2008 um 20:48:10 Uhr)
Mit Zitat antworten
  #2  
Alt 08.12.2008, 21:37:33
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Tabelle-Sortierung dauert sehr lang

Du hast doch hoffentlich einen Index auf der Spalte?
Wenn nein, dann machen.


Bei manchen DBMS funktioniert auch:
Code:
ALTER TABLE tabelle ORDER BY id DESC
Das kann man dann nach dem Einfügen ab und an mal machen.
Z.B. in einem Cronjob
Mit Zitat antworten
  #3  
Alt 08.12.2008, 21:43:11
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Tabelle-Sortierung dauert sehr lang

tja, das dauert halt vielleicht einfach so lange...wie ist denn das tabellendesign?
Mit Zitat antworten
  #4  
Alt 08.12.2008, 22:40:12
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
Du hast doch hoffentlich einen Index auf der Spalte?
Wenn nein, dann machen.
Klar, er ist als primary key definiert.

Zitat:
Bei manchen DBMS funktioniert auch:
Code:
ALTER TABLE tabelle ORDER BY id DESC
Das kann man dann nach dem Einfügen ab und an mal machen.
Z.B. in einem Cronjob
Das funktioniert aber mal so eine resortierung bei dieser tabelle dauert ja ca 2 min und jedes mal nach dem Einfügen bzw. Löschen eines Eintrages eine solche resortierun durchzuführen ist nicht möglich.
Mit Zitat antworten
  #5  
Alt 08.12.2008, 22:44:11
Heinrich Heinrich ist offline
Member
 
Registriert seit: Feb 2006
Beiträge: 883
AW: Tabelle-Sortierung dauert sehr lang

Du zeigst doch keine 1 Mio. Datensätze auf einer Webseite an.....??????

Dann lies doch nur die neuesten aus - mit einer WHERE-Klausel nach Datum oder die x-höchsten ID's
Mit Zitat antworten
  #6  
Alt 08.12.2008, 22:44:55
daudi daudi ist offline
Anfänger
 
Registriert seit: Dec 2008
Alter: 43
Beiträge: 16
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
Zitat von feuervogel Beitrag anzeigen
tja, das dauert halt vielleicht einfach so lange...wie ist denn das tabellendesign?
Ja das dauert einfach so lange, da die tabelle grade über 1.2 Mio Einträge hat. Deswegen frage ich, ob die andere lösungen gibts.

Das tabellendesign ist wie üblich:
26 Attributen von verschiedenen Typen,
7 Davon sind indiziert als Fulltext und normale Index

Danke für die Antwort
Mit Zitat antworten
  #7  
Alt 08.12.2008, 22:51:26
daudi daudi ist offline
Anfänger
 
Registriert seit: Dec 2008
Alter: 43
Beiträge: 16
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
Zitat von Heinrich Beitrag anzeigen
Du zeigst doch keine 1 Mio. Datensätze auf einer Webseite an.....??????

Dann lies doch nur die neuesten aus - mit einer WHERE-Klausel nach Datum oder die x-höchsten ID's
Danke für die Antwort.

Ich überlege diese Lösung, aber ich habe ein Pager(einträge sind seitenweise angezeigt) auf der Seite. Es wird nicht trivial.
Mit Zitat antworten
  #8  
Alt 08.12.2008, 23:31:04
Benutzerbild von agent47
agent47 agent47 ist offline
Anfänger
 
Registriert seit: Nov 2008
Alter: 35
Beiträge: 106
AW: Tabelle-Sortierung dauert sehr lang

nimm doch beim select die LIMIT klausel

PHP-Code:
SELECT *
FROM tabelle
LIMIT 100
,30
dadurch wird ab dem hundertsten datensatz die folgenden 30 datensätze ausgegeben

Geändert von agent47 (08.12.2008 um 23:33:34 Uhr)
Mit Zitat antworten
  #9  
Alt 08.12.2008, 23:41:23
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Tabelle-Sortierung dauert sehr lang

Zitat:
nimm doch beim select die LIMIT klausel
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).

Geändert von DokuLeseHemmung (08.12.2008 um 23:45:19 Uhr)
Mit Zitat antworten
  #10  
Alt 09.12.2008, 07:22:51
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: Tabelle-Sortierung dauert sehr lang

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?
Mit Zitat antworten
Antwort


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

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 07:40:59 Uhr.


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


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