Thread Effiziente SELECTs in MySQL: Insertion order determinieren? (23 answers)
Opened by ptk at 2004-06-08 16:02

ptk
 2004-06-09 16:18
#32236 #32236
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Oesi50,09.06.2004, 13:57]
Quote
Heisst das, dass die Reihenfolge des Ergebnisses zugesichert ist, wenn ein Index existiert? Das wuerde mir in der Tat helfen.


Ja so ist es.

[EDIT]das stimmt so nur mit der indizierten Spalte[/EDIT]
[/quote]Ich habe viele indizierten Spalten. Gewinnt der primary key? Hast du eine Referenz dazu?
Quote
mich wundern aber Deine Ergebnisse. Überprüfe noch mal, ob dein Index wirklich richtig ist.

Die Tabellendefinition sieht so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
+--------------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------------------+----------------+
| accesslog_id | int(10) unsigned | | PRI | NULL | auto_increment |
| host | varchar(255) | | | | |
| user | varchar(255) | YES | MUL | NULL | |
| accessdate | datetime | | MUL | 0000-00-00 00:00:00 | |
| rtype | varchar(10) | | | | |
| file | varchar(255) | | MUL | | |
| querystring | text | YES | | NULL | |
| proto | varchar(8) | | | | |
| code | int(10) unsigned | | MUL | 0 | |
| bytes | int(10) unsigned | | | 0 | |
| refer | varchar(255) | YES | | NULL | |
| agent | varchar(255) | YES | MUL | NULL | |
| provider | int(10) unsigned | YES | MUL | NULL | |
| id | varchar(255) | YES | MUL | NULL | |
| int_time | int(11) | YES | MUL | NULL | |
+--------------+------------------+------+-----+---------------------+----------------+

In http://dev.mysql.com/doc/mysql/en/ORDER_BY_optimisation.html sind die Faelle beschrieben, wo ORDER BY nicht optimiert werden kann. Am naechsten zu meinem Problem ist folgendes:
Quote
You use ORDER BY on non-consecutive key parts:

SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;

View full thread Effiziente SELECTs in MySQL: Insertion order determinieren?