MySQL 5.0.22 - problem z =?ISO-8859-2?Q?sk=B3adni=B1_=28chyba=29?=
Przemek Kmiecik - 07-07-2006 02:23
MySQL 5.0.22 - problem z =?ISO-8859-2?Q?sk=B3adni=B1_=28chyba=29?=
Witam.
Parę dni temu na serwerze zmieniono mi wersję serwera mysql z 4.1.x na 5.0.22-standard. Jeśli nic nie pokręciłem to klient jest w wersji 4.1.9. Od tamtej pory skrypt nie wykonuje poprawnie zapytań. Efekt jest taki, że demon mysql pochłania 99% zasobów procesora, tym samym czyniąc serwis niedostępny na pewien czas. Sytuacja ta ustępuje gdy zostanie osiągnięty timeout lub skilluję zapytanie. W ten sposób walcząc udało mi się określić, które zapytanie powoduje tą nieprzyjemną sytuację. Mistrzem mysqla to na pewno nie jestem i chciałbym się was poradzić. :)
Domyślam się, że chodzi o składnię zapytania. A w zasadzie jest niezgodność w wersji 5.0. Gdy wklepuję show processlist wygląda to tak:
Sending data | UPDATE mod_forum_users_pref, mod_forum_users SET mod_forum_users_pref.peneltys='0',
Natomiast zapytanie wygląda tak (nie zbyt przejrzyste):
$q_tmp = "UPDATE $this->TUsersPref, $this->TUsers SET $this->TUsersPref.peneltys='0',
$this->TUsers.id_up=IF($this->TUsers.id_up=".$this->peneltySettings['group_ban'].",'".$this->peneltySettings['group_afterban']."',$this->TUsers.id_up) WHERE $this->TUsersPref.user_id=$this->TUsers.id AND (to_days(now())-to_days($this->TUsersPref.last_penelty_time)>='".$this->peneltySettings['time_clear']."' AND $this->TUsersPref.peneltys<='".$this->peneltySettings['max_yellows']."') OR (to_days(now())-to_days($this->TUsersPref.last_penelty_time)>='".$this->peneltySettings['time_ban']."' AND $this->TUsersPref.peneltys>'".$this->peneltySettings['max_yellows']."') ";
Jeśli dobrze kombinuję to problem tkwi w drugiej wartości aktualizowanej w rekordzie. Przynajmniej tak mi się wydaje, bo w liście procesów nie jest wyświetlona wartość po przecinku.
Skrypt z którego wkleiłem zapytanie jest napisany w php. Niestety nie mogę sobie pozwolić na radosne testy na serwerze produkcyjnym.
Będę wdzięczny za wszelkie uwagi. Pozdrawiam. -- Przemek Kmiecik
Przemyslaw Popielarski - 07-07-2006 02:23
=?iso-8859-2?Q?Re:_MySQL_5.0.22_-_problem_z_sk=B3adni=B1_=28chyba=29?=
Przemek Kmiecik wrote: > Skrypt z którego wkleiłem zapytanie jest napisany w php.
Widac. Ale bys sie przylozyl troche i przelozyl to na czysty SQL, latwiej by bylo debugowac.
-- ../ premax ../ premax@hot.pl ../ koniec i bomba, a kto czytal ten traba. w.g.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Gdzie MySQL 4.1, a gdzie 5.0?
[MS SQL] "set names" (mySQL) w MS SQL
oracle -> oracle lub oracle -> mysql replikacja - programy
[mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu.
[MySQL] Zwrot tego, co pasuje i nie pasuje :-/
[pgsql] Dostosowanie składni MySQL 5.0 -> PGSQL 8.1
[mysql] galeria zdjec - numerowanie zdjec
[MySQL] Zapytanie z pliku , wynik do pliku
[mysql] CONCAT agregujący, ale nie GROUP_CONCAT()
mysql data 0000-00-00 na koniec
zanotowane.pldoc.pisz.plpdf.pisz.plchinska-zupka.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|