Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php+mysql] TRUNCATE
Wykrywacz
post
Post #1





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Cześć wszystkim.

Mam najpierw szereg skryptów wykonujących inserty updaty i takie tam. Lecz na koniec chce dać opcję powrotu do początku. Znalazłem coś takiego jak TRUNCATE TABLE, ale niema tam opcji where która by mnie interesowała, bo potrzebuje wykasować tylko to co zostało dodane przez daną sesję o danym identyfikatorze.

Z góry mówie że Delete mnie nie intresuje bo on owszem usunie mi rekordy, ale id'ki które mają autoincrementa nie zostaną skasowane. I nowy insert będzie na kolejnych numerach (czyli po tych już skasowanych).

Czy znacie jakąś inną komendę? na mysl'u pisze TAK

Ten post edytował Wykrywacz 19.10.2006, 11:14:12
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Mozesz dac DELETE WHERE + dostosowac AI w tabeli (http://dev.mysql.com/doc/refman/5.0/en/alter-table.html) ale co z rekordami stworzonymi przez innych userow (sesje) w tym samym czasie?

A po co ci przywracanie starego AI? Nie mozesz zwiekszyc typu pola int -> bigint?


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Wykrywacz
post
Post #3





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Z sesjami się nie martwię, bo to ręcznie nadawany ID który łaczy się jeszcze z idendyfikatorem użytkownika, niema możliwości zdublowania numeru, bo jest to numer dla użytkownika.

Swoją drogą powinien zwykły int wystaraczyć (góra 15 tyś rekordów miesięcznie). Poprostu bardzo spodobał mi się TRUNCATE, który kasuje równierz autoincrementowane id. A tym samym optymalizuje mi bazę do zmniejszania ilości numerków w bazie.
Stąd moje pytanie.

Bo naraz może być to nawet różnica 1000 rekordów. Które albo są zaoszczędzone, albo nie smile.gif

Ten post edytował Wykrywacz 19.10.2006, 11:29:51
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


KISS:
Moim zdaniem komplikujesz sobie zycie -- daj big inta -- chyba 9-z-wieloma zerami IDkow, powinno starczyc. Nie ma co sie bawic z odzyskiwaniem wartosci AI.

A TRUNCATE to (jak pamietam) usuwa tabele i tworzy ja na nowo i nie mozna go wykonac wewnatrz transakcji.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Wykrywacz
post
Post #5





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Dokładnie to robi smile.gif.
bigint nie jest potrzebny zwykły int ma nawet 11 (w każdym razie na tyle mi z automatu ustawił phpmyadmin tongue.gif ).

A mam jeszcze tylko takie optymalizacyjne pytanie.
Czy jeżeli mam ustawione indexowanie, i właśnie są kasowane takie rekordy, czy on te usunięte też indexuje czy pomija?

Co to znaczy KISS: questionmark.gif

Ten post edytował Wykrywacz 19.10.2006, 11:43:02
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


[quote]Czy jeżeli mam ustawione indexowanie, i właśnie są kasowane takie rekordy, czy on te usunięte też indexuje czy pomija?[/quoite]
Nie rozumiem...



KISS - http://pl.wikipedia.org/wiki/KISS_(reguła)
czyli to co napisalem tam ponizej smile.gif


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 19:51