phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] Erste Zeile einer MySQL-Datenbank

[php] AW: [php] Erste Zeile einer MySQL-Datenbank

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Wed, 01 Dec 1999 12:45:54 +0100


Christian Victor wrote:
> Gibt es vielleicht eine Möglichkeit nach dem kleinsten "id" zu selektieren?
> Oder sollte ich ORDER BY id LIMIT 1 verwenden? Kommt mir auch unelegant vor
> weil ja immer die ganze Datenbank (ca. 50.000 Einträge) durchsucht werden
> muss.

Also, erst einmal muß NICHT die ganze Datenbank durchsucht werden,
wenn ein Index auf id existiert. Das ist ja nun einmal genau der
Sinn eines Index, daß man gezielt Elemente selektieren kann ohne
die ganze Datenbank durchsuchen zu müssen.

In richtigen Datenbanken hat man die Möglichkeit Subqueries zu
machen, sodaß man mit

SQL> select * from q1;

         I          J          K
---------- ---------- ----------
         1         17         21
         4          5          6
        10         11         12

SQL> select * from q1 where i = ( select min(i) from q1 );

         I          J          K
---------- ---------- ----------
         1         17         21

das kleinste Element findet (i sollte indiziert sein). In MySQL 
macht man es stattdessen mit ORDER BY id LIMIT 1:

mysql> select sid, name, changed from active_sessions order by changed limit 1
    -> ;
+----------------------------------+--------------+----------------+
| sid                              | name         | changed        |
+----------------------------------+--------------+----------------+
| 6fae98db39930d862c9a9096701c3c74 | Leab_Session | 19991117181839 |
+----------------------------------+--------------+----------------+
1 row in set (0.00 sec)


und das ist schnell, solange ein Index auf der order by-Spalte liegt.

Kristian

-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.netuse.de/ (We have moved! Update your bookmarks!)


php::bar PHP Wiki   -   Listenarchive