CyfrifiaduronCronfeydd data

"Camgymeriadau" DML-Team Diweddariad MySQL

Mae pob rhaglennydd, a oedd yn gorfod gweithio gyda chronfeydd data, wynebu'r DML-weithredwyr (cyfieithu o'r Saesneg - .. "Data Trin Iaith"), megis Dethol, Mewnosod, Dileu ac Diweddariad. MySQL-amgylcheddol hefyd yn defnyddio yn ei arsenal cyfan o'r gorchymyn uchod.

Mae'r datganiadau hyn yn siarad yn rhesymol am ei benodiad - dewis cofnodion, rhowch gwerthoedd newydd, diweddaru data presennol, yn gyflawn, neu yn unol â'r amodau a bennir, cael gwared ar y wybodaeth yn y gronfa ddata. Mae'r deunyddiau hyfforddiant damcaniaethol yn cael eu disgrifio yn fanwl yr egwyddor o weithrediad pob gorchymyn a'u cystrawen, ond dod o hyd i unman cyfeiriadau at yr anawsterau a allai godi yn ymarferol yn ystod eu defnyddio. Bydd y deunydd hwn yn cael ei neilltuo i ystyried rhai ohonynt.

Yn fyr am DML-ddatganiadau (Insert)

Cyn mynd ymhellach, mae angen unwaith eto i gofio mwy o fanylion ynghylch diben pob swyddogaeth. Bydd gennym ddwy weithredwyr sydd â diddordeb mewn mwy o fanylder: Insert ac Diweddariad, gan ei fod yn dibynnu arnynt yn cael y prif anawsterau wrth brosesu symiau mawr o ddata.

Mae'n rhaid i chi ddechrau gyda Mewnosod gorchymyn, ac yna yn raddol yn symud i'r Update. system MySQL, fel unrhyw gronfa ddata modern eraill, defnyddiwch y Insert llawdriniaeth i ychwanegu cofnodion newydd i dablau presennol gronfa ddata. Mae cystrawen y llawdriniaeth hon yn syml iawn ac yn syml. Mae'n cynnwys rhestr o feysydd fydd yn cael eu gwneud i'r gwerthoedd, y gyrchfan - enw'r tabl - a gyflwynwyd ar unwaith rhestr o ddata. Bydd pob tro y byddwch yn perfformio y gronfa ddata yn cael ei diweddaru Insert gyda gwerthoedd newydd.

datganiad Diweddariad

Fodd bynnag, yn ymarferol, yn aml mae yna sefyllfaoedd, yn achos rhai set o ddata un neu fwy o werthoedd briodoledd i gael ei diweddaru. Fel enghraifft, sefyllfa lle y cwmni yn diwygio gyda ailenwi pellach o'r prif adrannau. Yn yr achos hwn, mae angen gwneud newidiadau ar gyfer pob adran. Os mai dim ond newid yr enw, yna gall y broblem ei datrys yn gyflym iawn. Fodd bynnag, os bydd newid codio pob cydran o'r cynhyrchiad cyfan, sydd fel arfer yn gwasanaethu fel yr allwedd sylfaenol, hynny yw, yn ei dro, yn golygu newidiadau i'r wybodaeth ac ar gyfer pob gweithiwr.

Diweddariad - gall DML-weithredwr yn cael eu cymhwyso i ddatrys y broblem. gweinyddwr MySQL-, yn gweithredu gyda nifer fawr o geisiadau, gyda chymorth datganiad diweddaru, gweithredu yr ymholiad gofynnol ac yn datrys y broblem. Ond weithiau digwydd yn ystod nad y diweddariad yn eithaf clir ac yn anodd ei egluro cymhlethdod. Dyna beth sy'n achosi anhawster cofnodion eu diweddaru, yn cael ei drafod ymhellach.

Yr hyn ychydig wedi cael ei ddweud mewn theori ...

Tîm Update, fel y nodwyd uchod, yn cael ei ddefnyddio i ddiweddaru cofnodion presennol yn y tabl. Ond yn ymarferol, nid yw cleientiaid yn cael mynediad i'r gweinyddwyr cronfeydd data bob amser yn hysbys, mae set penodol o ddata yn y tablau neu beidio. gwiriwch Rhagarweiniol argaeledd data yn y gronfa ddata ar gyfer diweddaru dilynol o ganlyniadau mewn cymryd llawer o amser a gwastraff o alluoedd gweinydd.

Er mwyn osgoi hyn, mewn strwythur MySQL chronfa ddata arbennig - Mewnosod * Update, lle mae'r mewnosodiad neu'r diweddariad yn cael ei berfformio yn annibynnol ar ei gilydd. Dyna pryd y tabl mae cofnod ar gyfer cyflwr penodol, bydd yn cael ei ddiweddaru. Os yw'r amodau a ystyriwyd, mae'r data ni fydd dod o hyd, MySQL-gweinydd yn gallu perfformio Llwythiadau data cais.

data Diweddariad pan mae dyblygu

Elfen bwysig o'r Mewnosod hwn - cais i'r system rheoli cronfa ddata MySQL - «On Diweddariad Allweddol dyblyg» rhagddodiad. Mae cystrawen cyflawn o'r ymholiad fel a ganlyn: «mewnosod yn test_table (employer_id, enw) Gwerthoedd ( 1, 'Abramov') ar allweddol dyblyg ddiweddariad last_modified = NOW (); ".

Gall cais o'r fath yn cael ei ddefnyddio i gofnodi gweithredoedd, er enghraifft, yn penderfynu ar y fenter amser darn groesffordd ac yna drwy gyfrif cyfwng amser ac oedi canfod. Er mwyn peidio â gwneud y bwrdd ychydig gofnodion, yn ddigon ar gyfer pob gweithiwr i gadw cofnodion â diweddaru cyson. Mae'n gynllun gwirio dyblyg yn caniatáu hynny.

A dweud y gwir broblemau ...

O ystyried yr enghraifft uchod y cofrestriad gweithredu staff wrth y fynedfa, gan fod y broblem yw'r defnydd samouvelichivayuschihsya (_ cynyddiad auto) caeau, sy'n cael eu defnyddio fel arfer i lenwi'r prif werthoedd allweddol (_ allwedd gynradd). Os ydych yn defnyddio MySQL gorchymyn Diweddariad mewn dylunio gyda Mewnosod auto _ cynyddiad, mae'r cae yn cynyddu'n gyson.

Yn yr un modd, mae popeth yn digwydd wrth ddefnyddio gwaith adeiladu newydd yn achos o ganfod dyblyg. "Auto-hicyn" gwerth yn cynyddu hyd yn oed yn yr achos lle nad oes ei angen. Oherwydd hyn, bydd problemau'n codi gwerthoedd neu ystodau bas gorlif, sydd wedyn yn arwain at camweithio o systemau rheoli cronfa ddata.

Mae'r rhan fwyaf tebygol y broblem

Disgrifio'r rhaid i'r broblem gael ei ystyried Gwe-datblygwyr, gan ei fod yn fwyaf cyffredin mewn systemau aml-ddefnyddiwr (gwefannau, pyrth, ac yn y blaen. P.), Pan fydd y system yn cael ei gyflawni nifer fawr o weithdrefnau Mewnosod a Diweddariad MySQL.

PHP - apelio at y sylfaen yn aml iawn perfformio. Felly, er mwyn cyflawni ymylon uchaf, a ddiffinnir fel auto_increment, yn digwydd yn gyflym, ac yn y dadansoddiad o'r anawsterau a gafwyd i sefydlu'r rhesymau, ni fydd yn unig yn gweithio.

Felly, datblygwyr yn cael eu hannog i fod yn sylwgar at y defnydd o'r cynllun ar allwedd dyblyg yn diweddaru mysql gorchymyn. Dewiswch - ymholiadau wrth gael mynediad bydd y gweinydd y gronfa ddata yn gweithio heb gamgymeriad, ond ychwanegu cofnodion newydd at y gronfa ddata yn llawn sefyllfaoedd annymunol yn arwain at broblemau difrifol yn y dyfodol. Fel arall, mae'n cael ei argymell ar gyfer caeau auto-hicyn i ddechrau wirio eu cofnodion, ac yna yn eu dal diweddaru.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 cy.unansea.com. Theme powered by WordPress.