Zitat:
Zitat von DokuLeseHemmung
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