mysql zabrejku

Verjetno predvsem vprašanje za Vinija. Torej, v mysql sipam podatke, to sploh ni debate o tem karkoli, pa kar naenkrat po nekaj tisoč vpisih nič več ni šlo v tabelo skozi isto zadevo, ki je prej delala, isto če sem prek ročno zagnal query preko myadmina tudi ni delalo, javljalo v smislu duplicate id za naslednjega, ki še vbisvu sploh ni obstajal... malo testiram zadeve nato repairam bazo pa potem spet začelo delati.

Kje je lahko bil problem, ker sem zgubil kar nekaj podatkov ko se ni shranjevalo, da je bazo "sesulo", sql injektioni odpadejo... bi rekel da je to nek mysql bug bil?

hvala za kako idejo, ker nočem da se ponovi, čeprav pa res vedno ne čekiram, če je bil vnos res, ker predvidevam da je bil ker imam vse urejeno, le takšna "nadnaravna" sila ga lahko prepreči.

9 odgovorov

Nah, duplicate id, to pomeni da si že imel tak zapis, id pa nastavljen kot unikaten.

Lahko da si mel kaj čudnega v bazi, lahko pa tako se je meni zgodilo, ko sem začel z mysql pa sem dal varchar za id, ugani kaj je bilo pri 128 zapisu :D.

Lej ni mi treba razlagat kaj je duplicate id in da sem prekoraču podatkovni tip ;)

Ampak če bi prebral malo počasneje bi videl, da to ni to. Naslednjega zapisa sploh ni blo, vbistvo je za bilokaterega javljalo duplicate če sem napisu, tudi "milijon". Je blo pa tak autoincindex na ena vrednosti več od zadnjega zapisa, torej normalno (ni delal vpis če sem ga določil - auti inc index - ali ne v queriju), po repairu pa vse normalno, delal zapis na naslednji index lepo normalno in sedaj zopet teče, ampak zanima me potencialen vzrok težave.

frisby, tocno ti res ne morem povedat, kaj bi lahko bilo narobe... je pa mysql res blazno nestabilen in se tabele zelo rade corruptajo, se posebej, ce zelo veliko pises v tabelo in iz nje tudi redno brises...

zelo tezko ti tukaj povem za 100% kaj je narobe, govorim le o tem, kar sem izkusil, vzroka pa se nisem odkril... sem vedno ukrepal ravno tako kot ti, repair tables, v skrajnem primeru ustavil mysql streznik in repairal z myisamchk -r

je pa res, da se mi je to dogajalo z mysql verzijo 4 in drobiz, z verzijo 5 se mi to se ni zgodilo, kar pa seveda ne pomeni, da je ta verzija imuna na to... mogoce imam pac zadnje case le sreco...

Če je mysql tako nestabilen zakaj pa ne greste na kaj druga npr Postgre ali pa celo MS SQL. :D Pri slednjem sigurno ni takih problemov. :p

frenky, ze kaksni dve leti zbiram pogum za prestop na postgresql, zadeva je noro kul, problem je le ta, da imam moj sistem napisan za mysql, pa se kar nekako ne lotim zadeve na novo napisat za postgresql :) drugace bi pa vsem res priporocal postgresql, lahko pa bo problem, je namrec zadeva ful bolj striktna, pa bo mogoce kaksnemu novincu povzrocala tezave...

Ah, če se mučite z XHTML Strict potem vam tudi malo bolj striktni sql ne bo delal težav. :)

Hej. Baza je petka (5.0.41), to sem pozabil prej povedat.

Je pa fora, ker nisem nič brisal vnosov, vsi id-ji so bli do zadnjega vnesenega indexa, čeprav za to je bolj potem potreben optimize kot repair. Mal pod 10k se je ustavlo. Edin truncatu sem jo nekajkrat prej.

Drugače pa mysql brez problema handla tudi več milijonsko bazo z dobrimi indeksi, ampak tu pa res nimam ideje kaj bi bilo.

frisby, res je, brez problema dela zadeva s tabelami do 4GB, preverjeno :) se pa vcasih sesujejo cisto normalne majhne tabele, brez kaksnega posebnega razloga, no ja, vsaj meni neznanega :) ampak, kot ze receno, v verziji 5 tega se nisem dozivel... knock on wood

Vini, hvala vseen za dobro voljo. :)

Še pa en razlog, da od zdaj na pomembnih zadevah res čekiram, če je prišlo do dejanskega vpisa, čeprav že prej na vse parametre se preveri pred izvršitvijo inserta, če je s smiselnega stališča možno (obstoječi podatki, da ne pride do qunikov itd).