Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Povremeni problem sa INSERT-om podataka

[es] :: MySQL :: Povremeni problem sa INSERT-om podataka

[ Pregleda: 1972 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
*.dynamic.sbb.rs.

Sajt: www.strainovic.com


+7 Profil

icon Povremeni problem sa INSERT-om podataka24.07.2010. u 20:02 - pre 167 meseci
Imam jedan cudan problem koji se javlja s vremena na vreme i za sada nisam uspeo da ga resim. Radi se o tome da jedan INSERT upit uglavnom bude upisan za 0.002 sec posto je vrlo mala kolicina podatka u pitanju, ali se isto tako desi po nekad da taj isti upit zaglavi i potraje izmedju 150 i 400 sec. i za to vreme nista drugo ne radi.

Probao sam da tu tabelu i index prebacim na drugi disk na serveru koji se koristi samo za backup ali isto se desava. Ne postoji neko odredjeno vreme u toku dana kada se problem javlja... sve radi savrseno kada je server najvise opterecen i onda se desi da recimo u 3-4 nocu takav upit spuca citav sajt na 1-2 minuta.

Radi se o SMF forumu i ban tabeli, a ovo je njena struktura:

Code:
CREATE TABLE IF NOT EXISTS `smf_banned` (
  `ID_BAN` smallint(4) unsigned NOT NULL auto_increment,
  `ban_type` enum('ip_ban','user_ban') NOT NULL,
  `ip_low1` tinyint(3) unsigned NOT NULL default '0',
  `ip_high1` tinyint(3) unsigned NOT NULL default '0',
  `ip_low2` tinyint(3) unsigned NOT NULL default '0',
  `ip_high2` tinyint(3) unsigned NOT NULL default '0',
  `ip_low3` tinyint(3) unsigned NOT NULL default '0',
  `ip_high3` tinyint(3) unsigned NOT NULL default '0',
  `ip_low4` tinyint(3) unsigned NOT NULL default '0',
  `ip_high4` tinyint(3) unsigned NOT NULL default '0',
  `hostname` varchar(255) NOT NULL,
  `email_address` varchar(255) NOT NULL,
  `ID_MEMBER` mediumint(8) unsigned NOT NULL default '0',
  `ban_time` int(10) unsigned NOT NULL default '0',
  `expire_time` int(10) unsigned default NULL,
  `restriction_type` enum('cannot_post','cannot_register','full_ban') NOT NULL,
  `reason` varchar(255) NOT NULL,
  `notes` varchar(255) NOT NULL,
  PRIMARY KEY  (`ID_BAN`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;


Probao sam privremeno da promenim ENGINE u MEMORY ali ako se dobro secam, problem je i dalje bio prisutan...

U pitanju je MySQL 5.0.xx na openSuSE sistemu.

Da li je neko mozda imao slican problem ili moze da me usmeri gde da trazim gresku tj. kako da je detektujem?
Pozdrav, NenadS!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Povremeni problem sa INSERT-om podataka24.07.2010. u 22:43 - pre 167 meseci
na zalost, nista lepo ne mogu da kazem ovde osim da se ne secam tacno koji je broj bug-a u pitanju ali je problem sa query cache invalidatizacijom koja "zabode". Na zalost resenje je
- upgrade na 5.1 (mada to ne resava 100% problem ali ga resava u nekih 80 od 100 situacija) ili upgrade na 5.5 (ovde je problem potpuno uklonjen)
- gasenje query cache-a (smanjivanje isto moze da pomogne dosta)

za forum app gasenje qcache-a moze da uspori ceo sistem znacajno tako da mislim da ti je najbezbolnije da istestiras to na 5.5. Ja nisam nikad probao SMF tako da nemam pojma da li ima neki problem sa 5.5 ali mozes da ga poteras u lokalu par sati, ako nesto zeza videces odma.

Ako ne zelis da odradis upgrade, budi siguran da koristis bar 5.0.52 da izbegnes: http://bugs.mysql.com/bug.php?id=21074 (drugi relevantni bag je http://bugs.mysql.com/bug.php?id=43758 mada on ne bi trebalo da te pogadja) ali ako bas hoces da ostanes na 5.0, skoci na 5.0.91 ... ako to nije tvoj mysql, smaraj hosting provajdera da odrade upgrade :D (koja je to tacno verzija da probam da vidim tacno koji te bag zeza)
 
Odgovor na temu

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
*.dynamic.sbb.rs.

Sajt: www.strainovic.com


+7 Profil

icon Re: Povremeni problem sa INSERT-om podataka24.07.2010. u 23:56 - pre 167 meseci
Hvala puno na odgovoru. Tacna verzija MySQL-a je 5.0.67 - x64. Razmisljao sam o prelasku na 5.1 zbog particionisanja tabela ali ne znam da li bi to u slucaju foruma pomoglo u smislu da recimo vece tabele koje imaju 10 ili vise miliona upisa podelim na nekoliko manjih? Da li bi to znacilo da bi recimo tabelu sa porukama kojih ima par miliona mogao da podelim na vise manjih delova i da to radi bolje nego sada i naravno bez nekih problema posto bi SELECT ili bilo koji drugi tip upita morao da prolazi kroz vise particija kako bi obradio podatke?

Ostaje mi onda da probam u lokalu sa verzijom 5.1 pa da vidim da li ce raditi kako treba i ako se pokaze kao ok da uradim upgrade...
Pozdrav, NenadS!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Povremeni problem sa INSERT-om podataka25.07.2010. u 13:06 - pre 167 meseci
ima nekoliko patcheva koji su vezani za ovaj problem izmedju 5.0.67 i 5.0.91 .. ako je to tvoj server upgrade-uj minimum na poslednji 5.0

sto se tice particionisanja, ja sam radio neke testove i upit kroz jednu particiju je mnogo brzi sto je za ocekivati ( http://www.mysql.rs/2010/06/particionisanje-podataka/ ) dok upit koji ide kroz sve particije bude izmedju 0 i 10% sporiji nego pre particionisanja ... (u 80% slucajeva je bio 0-3% sporiji, 10% slucajeva 3-5% sporiji, 5% slucajeva 5-6% sporiji i 5% slucajeva preko 6% sporiji i to su generalno po meni odlicni rezultati obzirom da je rad kroz jednu particiju "poludeo", isao i do 400 puta brze (40000%) u extremnim slucajevima) .. bitno je samo da napravis particije kako treba (da particionises po pravom kljucu) - obrati paznju da kljuc po kom particionises mora biti deo pk-a. Poenta je da ti particionisanje radi samo ako ti vecina upita ide kroz samo jednu particiju, ako ti vecina upita ide kroz vise particija, pogresno si izparticionisao tabelu

obrati paznju da imas limit na broj particija, mozes npr da particionises po temama (x tema u jednu particiju), posto retko (osim na naslovnoj i na serach-u) imas slucaj da upit ide kroz vise tema
 
Odgovor na temu

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
*.dynamic.sbb.rs.

Sajt: www.strainovic.com


+7 Profil

icon Re: Povremeni problem sa INSERT-om podataka25.07.2010. u 13:53 - pre 167 meseci
Procitao sam tekst sa navednog linka pre nekog vremena i to me je i navelo na razmiljanje o particionisanju tabela :)

Mogao bih recimo da probam tabelu sa porukama da particionisem tako da kljuc bude ID teme, a ne ID poruke koji je PK, jer kao sto si rekao, samo na index-u foruma SELECT bi morao da ide kroz vise particija, dok bi pri ulasku u neku temu sve islo kroz jednu...
Pozdrav, NenadS!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Povremeni problem sa INSERT-om podataka25.07.2010. u 15:03 - pre 167 meseci
samo ces morati da id teme dodas u pk da bi mogao da particionises po njemu ... neces moci "jedna tema, jedna particija", moraces da ih nekako grupises
 
Odgovor na temu

NenadS
Nenad Strainovic
Beograd

Član broj: 857
Poruke: 910
*.dynamic.sbb.rs.

Sajt: www.strainovic.com


+7 Profil

icon Re: Povremeni problem sa INSERT-om podataka25.07.2010. u 18:20 - pre 167 meseci
Da, mislio sam da ih grupisem po recimo 100-200.000 tema po tabelu, mada opet, neka tema moze da ima jednu poruku, dok druga moze da ima par hiljada ali mogu da uradim analizu, pa da onda odredim na koliko delova tu tabelu da podelim da bi delovi bili podjednaki
Pozdrav, NenadS!
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Povremeni problem sa INSERT-om podataka25.07.2010. u 22:41 - pre 167 meseci
Letimično sam pogledao pitanje i podsjeća me na problem koji sam ja imao sa UPDATE.

http://www.elitesecurity.org/t...por-UPDATE-na-InnoDB-Mysql-log

Uglavnom, ja nisam našao razlog ali se nekako riješio pretresanjem servera iz temelja




 
Odgovor na temu

[es] :: MySQL :: Povremeni problem sa INSERT-om podataka

[ Pregleda: 1972 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.