phpbar.de logo

Mailinglisten-Archive

Problem mit Index where und order by

Problem mit Index where und order by

Michael Bonfert mysql-de_(at)_lists.bttr.org
Wed, 20 Mar 2002 11:21:52 +0100


Hallo,

ich habe folgende Tabelle:

CREATE TABLE Posts (
   Board varchar(100) NOT NULL,
   Number int(11) unsigned NOT NULL auto_increment,
   Posted int(11) unsigned DEFAULT '0' NOT NULL,
   Subject text,
   Body text,

   PRIMARY KEY (Number),
   KEY index1 (Number, Board),
   KEY index2 (Board),
   KEY index3 (Posted, Board),
   KEY index4 (Board, Number)
);

und folgenden SQL Befehl:
SELECT * FROM  Posts WHERE Board  = 'board1'  ORDER BY Board DESC, Number
DESC

laut Dokumentation
http://www.mysql.com/doc/O/R/ORDER_BY_optimisation.html
=> SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC,key_part2
DESC

sollte der Command wohl index4 verwenden. Stattdessen wird index2
verwendet.

Bei
SELECT * FROM  Posts WHERE Board  <> 'board1'  ORDER BY Board DESC, Number
DESC
wird index4 verwendet.

Warum wird bei 1. SQL Befehl nicht index4 verwendet.
Wie kann ich den SQL Befehl formulieren, damit index4 angewendet wird.

Danke

Michael





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



php::bar PHP Wiki   -   Listenarchive