Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak wyciagnac najwieksza wartosc? ; auto_increment, 3 problemy
invx
post
Post #1





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


mam kilka problemow, ale zeby nie mnozyc tematow (bo moderatorzy wrazliwi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) to napisze je w jednym temacie:
1. Jak wyciagnac z bazy MYSQL z pola wiersz z najwieksza wartoscia pola id.
2. Jak wyciagnac z bazy kolejna wartosc, auto_incrementu, zeby to potem uzyc w zapytaniu i zapisac pod polem np id2, czy da sie to wyciagnac w jednym zapytaniu, w tym samym, w ktorym nastepuje zapis ? bo inaczej to wiem jak (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
3. Czy moze sie zdarzyc ze baza jako nastepny numer auto_incrementacji da el. nie kolejny, tylko jesli bedzie dziura to da wczesniejszy. Zeby lepiej opisac mam pola id z numerami "1 2 3 4 5 8 9 11" i czy baza na 100% jako nastepny auto_incremet da 12 czy moze jej odbije (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) i da np. 7

Ten post edytował invx 1.01.2005, 22:36:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mhs
post
Post #2





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


Cytat(gdaq @ 2005-01-02 20:40:11)
1)
  1. SELECT id
  2. FROM tabela ORDER BY id DESC LIMIT 1
jest wydajniejsze od pomyslu mhs'a

czy aby na pewno? Niestety kilka dni temu pozbylem sie 5 milionowej bazy danych MySQL z mojego dysku i nie moge sprawdzic w tej chwli ktore z zapytan byloby szybciej wykonywane.

Jendak sprawdzilem jak to PostgreSQL

Kod
michal=# EXPLAIN SELECT MAX(id) FROM TEST;
                        QUERY PLAN
-----------------------------------------------------------
Aggregate  (cost=1.97..1.97 rows=1 width=4)
   ->  Seq Scan on test  (cost=0.00..1.77 rows=77 width=4)
(2 rows)

michal=# EXPLAIN SELECT id FROM test ORDER BY id DESC LIMIT 1;
                           QUERY PLAN
----------------------------------------------------------------
Limit  (cost=4.18..4.19 rows=1 width=4)
   ->  Sort  (cost=4.18..4.38 rows=77 width=4)
         Sort Key: id
         ->  Seq Scan on test  (cost=0.00..1.77 rows=77 width=4)
(4 rows)

michal=#


czy nie oznacza to, ze wykorzystanie MAX(id) jest szybsze?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 08:46