phpbar.de logo

Mailinglisten-Archive

Mal wieder das Order By Problem: filesort statt index

Mal wieder das Order By Problem: filesort statt index

Fleischhauer, Wim wfleischhauer@systeam.de
Thu Nov 28 15:49:21 2002


Hallo Jan,

ich vermute 2 Punkte, die MySQL von der Verwendung des
Indexes abhalten:
- "or" in where kann der Optimizer nicht so gut verarbeiten 
  wie "and" (MySQL ist IMHO noch nicht so weit)
- Suche mit "%xxxx%" kann auch schwer optimiert werden.
  Besser kann "xxxx%" indexiert werden.


cu
  -wim fleischhauer-


-----Original Message-----
From:	Jan Varwig [mailto:janvarwig@gmx.net]
Sent:	Thu 28.11.2002 12:00
To:	mysql-de@lists.4t2.com
Cc:	
Subject:	Mal wieder das Order By Problem: filesort statt index
Hallo mysql-de,

Schiere Verzweiflung treibt mich hierher. Zu dem Problem lies sich
auch nirgends sonst vernünftige Antwort finden, obwohl ich nicht der
einzige mit dem Problem zu sein scheine:

Folgende Tabelle:

CREATE TABLE `news` (
  `nid` bigint(4) NOT NULL auto_increment,
  `subject` varchar(50) NOT NULL default '',
  `source` tinytext NOT NULL,
  `summary` text NOT NULL,
  `full` longtext NOT NULL,
  `aid` varchar(30) NOT NULL default '',
  `time` datetime NOT NULL default '0000-00-00 00:00:00',
  `gid` varchar(10) NOT NULL default '',
  PRIMARY KEY  (`nid`),
  KEY `news_time` (`time`)
) TYPE=MyISAM

Und folgende Abfrage:

  explain select nid, subject, length(full) as length, unix_timestamp(time) as time
    from news where news.summary like '%zelda%' or news.full like '%zelda%' order by news.time desc

Diese Abfrage, aber auch vereinfachte Varianten davon (alle aber order
by news.time) benutzt einfach nicht den Index 'news_time', sondern
filesort, was ich bei ~5.000 Einträgen natürlich gern verhindern
würde. Ein ähnliches Problem hatte ich in einer anderen Tabelle,
welches sich aber durch ein Update von 3.23 auf 4.0.5-beta erledigt
hatte. Leider war das hier nicht der Fall.
Wie bekomme ich mysql dazu, nach indexen zu sortieren, bzw. woran
liegt es, dass mysql den Index nicht benutzt.

Jan Varwig

-- 
"Wo das Irrenhaus ist?" war wieder Arkanum Jill Watson
zu hören. "Haben sie jemals die Gebrauchsanleitung auf
einem Päckchen Zahnstocher gelesen?" - Douglas Adams
Jan Varwig janvarwig@gmx.net


-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 





-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive