Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Nie działa 'optymalizacja tebeli' w bazie
nitro11
post 16.09.2010, 12:32:53
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


W tabeli klucz główny to 'id' auto increment.
Czasem zdarza się, że muszę usunąć kilka rekordów z końca ale wtedy jak dodaje kolejne robi się dziura
w id bo kolejne rekordy maja id wyższe niż te które usunąłem a chciałbym żeby była ciągłość id tzn jak skasuje
jakies rekordy to id dla kolejnego jest kolejnym po rekordzie ostatnim nieskasowanym.

Zawsze w takim wypadku używałem opcji 'optymalizuj tabele' i nasteny autoindex byl taki jak trzeba
a teraz ta opcja w ogole nie dziala.

Co może być powodem ?
Go to the top of the page
+Quote Post
nospor
post 16.09.2010, 12:42:47
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zacznijmy od tego, że masz błąd logiczny skoro przeszkadzają ci dziury w ID winksmiley.jpg

Co do problemu:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Cytat
ALTER TABLE t2 AUTO_INCREMENT = value;

You cannot reset the counter to a value less than or equal to any that have already been used. For MyISAM, if the value is less than or equal to the maximum value currently in the AUTO_INCREMENT column, the value is reset to the current maximum plus one. For InnoDB, if the value is less than the current maximum value in the column, no error occurs and the current sequence value is not changed.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nitro11
post 16.09.2010, 12:52:35
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


Nie tyle mi to przeszkadza co testuje pewne skrypty i często już na początku robią mi dziury
a nie chce zęby pierwsze id zamiast 1 bylo 324627 dlatego stosowałem optymalizację i pomagało.

  1. ALTER TABLE t2 AUTO_INCREMENT = value;

To znam, ale uzyskiwałem szybko ten efekt opcją 'optymalizuj tabele' a teraz nagle to przestało działać i nie wiem dlaczego.
Go to the top of the page
+Quote Post
nospor
post 16.09.2010, 12:56:32
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ale uzyskiwałem szybko ten efekt opcją 'optymalizuj tabele'

ALTER TABLE t2 AUTO_INCREMENT = value; jest równie szybkie winksmiley.jpg

ps: testujesz na serwerze produkcyjnym?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nitro11
post 16.09.2010, 13:42:14
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 30.08.2010

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


Na VPS konkretnie.
Go to the top of the page
+Quote Post
nospor
post 16.09.2010, 15:51:58
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Na VPS konkretnie.
Szczerze powiedziawszy srednio mnie interesuje czy to vps, pc czy amiga.
Pytalem sie czy to serwer produkcyjny, czyli taki, na którym docelowo dziala aplikacja. smile.gif
Testy robi się na maszynie testowej a nie produkcyjnej. Na produkcyjną wrzuca się już działającą aplikacje. Wowczas nie ma problemu z tym, ze ID zaczyna się 345323 smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 05:48