Zotsatira zakusaka ndi zovuta za magwiridwe antchito

Chimodzi mwazinthu zodziwika bwino m'mapulogalamu onse omwe timawadziwa ndikufufuza deta molingana ndi njira zina ndikuwonetsa m'mawonekedwe osavuta kuwerenga. Pakhozanso kukhala zosankha zina zosankha, kupanga magulu, ndi mapeji. Ntchitoyi, mwachidziwitso, ndiyochepa, koma poyithetsa, opanga ambiri amapanga zolakwika zingapo, zomwe pambuyo pake zimapangitsa kuti zokolola ziwonongeke. Tiyeni tiyese kulingalira njira zosiyanasiyana zothetsera vutoli ndikupanga malingaliro osankha kukhazikitsa kothandiza kwambiri.

Zotsatira zakusaka ndi zovuta za magwiridwe antchito

Njira yopangira tsamba #1

Njira yosavuta yomwe imabwera m'maganizo ndikuwonetsa tsamba ndi tsamba lazotsatira zamawonekedwe ake apamwamba kwambiri.

Zotsatira zakusaka ndi zovuta za magwiridwe antchito
Tiyerekeze kuti pulogalamu yanu imagwiritsa ntchito database yolumikizana. Pankhaniyi, kuti muwonetse zambiri mu fomu iyi, muyenera kuyendetsa mafunso awiri a SQL:

  • Pezani mizere yatsamba lapano.
  • Werengani chiwerengero cha mizere yogwirizana ndi zomwe mukufuna kufufuza - izi ndizofunikira kuti muwonetse masamba.

Tiyeni tiwone funso loyamba pogwiritsa ntchito database ya mayeso a MS SQL monga chitsanzo AdventureWorks kwa seva ya 2016. Pachifukwa ichi tidzagwiritsa ntchito tebulo la Sales.SalesOrderHeader:

SELECT * FROM Sales.SalesOrderHeader
ORDER BY OrderDate DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY

Funso lomwe lili pamwambapa libweza maoda 50 oyamba pamndandanda, osankhidwa ndi tsiku lotsika lowonjezera, mwa kuyankhula kwina, maoda 50 aposachedwa kwambiri.

Imayenda mwachangu pamayeso, koma tiyeni tiwone dongosolo lakupha ndi ziwerengero za I / O:

Zotsatira zakusaka ndi zovuta za magwiridwe antchito

Table 'SalesOrderHeader'. Scan count 1, logical reads 698, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Mutha kupeza ziwerengero za I/O pafunso lililonse poyendetsa lamulo la SET STATISTICS IO ON mu nthawi yofunsa mafunso.

Monga mukuwonera kuchokera pakukonzekera, njira yolimbikitsira kwambiri ndikusintha mizere yonse ya tebulo potengera tsiku lomwe lawonjezeredwa. Ndipo vuto ndiloti mizere yambiri ikuwonekera patebulo, "zovuta" kusanja kudzakhala. M'malo mwake, zinthu zotere ziyenera kupewedwa, kotero tiyeni tiwonjezeko index pa tsiku lowonjezera ndikuwona ngati kugwiritsa ntchito zinthu kwasintha:

Zotsatira zakusaka ndi zovuta za magwiridwe antchito

Table 'SalesOrderHeader'. Scan count 1, logical reads 165, physical reads 0, read-ahead reads 5, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Mwachiwonekere zakhala bwino kwambiri. Koma kodi mavuto onse atha? Tiyeni tisinthe funso kuti tifufuze maoda pomwe mtengo wonse wazinthu upitilira $100:

SELECT * FROM Sales.SalesOrderHeader
WHERE SubTotal > 100
ORDER BY OrderDate DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY

Zotsatira zakusaka ndi zovuta za magwiridwe antchito

Table 'SalesOrderHeader'. Scan count 1, logical reads 1081, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Tili ndi zochitika zoseketsa: dongosolo lamafunso silili loyipa kwambiri kuposa lapitalo, koma kuchuluka kwenikweni kwa zowerengera zomveka ndi zazikulu kuwirikiza kawiri kuposa kusanthula tebulo lonse. Pali njira yotulukira - ngati tipanga cholozera chophatikizika kuchokera pamndandanda womwe ulipo kale ndikuwonjezera mtengo wathunthu wazinthu ngati gawo lachiwiri, tipezanso zowerengera zomveka 165:

CREATE INDEX IX_SalesOrderHeader_OrderDate_SubTotal on Sales.SalesOrderHeader(OrderDate, SubTotal);

Zitsanzo izi zitha kupitilizidwa kwa nthawi yayitali, koma malingaliro akulu awiri omwe ndikufuna kufotokoza apa ndi awa:

  • Kuyika mulingo uliwonse watsopano kapena kusanja pafunso kumatha kukhudza kwambiri liwiro lakusaka.
  • Koma ngati tikufuna kuchotsa gawo lokha la data, osati zotsatira zonse zomwe zimagwirizana ndi mawu osakira, pali njira zambiri zokometsera funso lotere.

Tsopano tiyeni tipitirire ku funso lachiwiri lomwe latchulidwa kumayambiriro kwenikweni - lomwe limawerengera kuchuluka kwa zolemba zomwe zimakwaniritsa mulingo wofufuzira. Tiyeni titenge chitsanzo chomwecho - kufunafuna maoda opitilira $100:

SELECT COUNT(1) FROM Sales.SalesOrderHeader
WHERE SubTotal > 100

Poganizira zophatikiza zomwe zasonyezedwa pamwambapa, timapeza:

Zotsatira zakusaka ndi zovuta za magwiridwe antchito

Table 'SalesOrderHeader'. Scan count 1, logical reads 698, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Mfundo yakuti funsolo likudutsa muzolemba zonse sizosadabwitsa, popeza gawo la SubTotal silili pamalo oyamba, kotero funso silingagwiritse ntchito. Vutoli limathetsedwa powonjezera index ina pagawo la SubTotal, ndipo chifukwa chake limapereka zowerengera zomveka 48 zokha.

Mutha kuperekanso zitsanzo zingapo zopempha kuti muwerenge kuchuluka kwake, koma mfundo zake zimakhala zofanana: kulandira chidutswa cha deta ndikuwerengera ndalama zonse ndi zopempha ziwiri zosiyana, ndipo iliyonse imafunikira miyeso yakeyake kuti ikwaniritse bwino. Mwambiri, simungathe kupeza masanjidwe a index omwe amagwira ntchito mofanana pamafunso onse awiri.

Chifukwa chake, chimodzi mwazofunikira zomwe ziyenera kufotokozedwa popanga njira yofufuzira yotero ndikuti ngati kuli kofunikira kuti bizinesi iwone kuchuluka kwazinthu zomwe zapezeka. Nthawi zambiri zimachitika kuti ayi. Ndipo kuyenda ndi manambala ena amasamba, m'malingaliro mwanga, ndi yankho lokhala ndi gawo lopapatiza kwambiri, popeza zochitika zambiri zamatsamba zimawoneka ngati "pitani patsamba lotsatira."

Njira yopangira tsamba #2

Tiyerekeze kuti ogwiritsa ntchito samasamala kudziwa kuchuluka kwa zinthu zomwe zapezeka. Tiyeni tiyese kufewetsa tsamba losaka:

Zotsatira zakusaka ndi zovuta za magwiridwe antchito
Ndipotu, chinthu chokha chomwe chasintha ndi chakuti palibe njira yopita ku manambala enieni a masamba, ndipo tsopano tebulo ili siliyenera kudziwa kuti ndi angati omwe angakhalepo kuti awonetsere. Koma funso limadzuka - tebulo limadziwa bwanji ngati pali deta patsamba lotsatira (kuti muwonetse bwino ulalo wa "Next")?

Yankho lake ndi losavuta: mukhoza kuwerenga kuchokera ku database yowonjezereka kuposa yomwe ikufunika kuti iwonetsedwe, ndipo kupezeka kwa "zowonjezera" izi kudzawonetsa ngati pali gawo lotsatira. Mwanjira iyi, mumangofunika kuyendetsa pempho limodzi kuti mupeze tsamba limodzi la data, lomwe limathandizira kwambiri magwiridwe antchito ndikupangitsa kuti zikhale zosavuta kuthandizira ntchitoyi. Muzochita zanga, panali vuto pamene kukana kuwerengera chiwerengero cha zolemba zinafulumizitsa kupereka zotsatira ndi nthawi 4-5.

Pali njira zingapo zogwiritsira ntchito njira iyi: "kumbuyo" ndi "kutsogolo" malamulo, monga momwe tawonetsera pamwambapa, batani la "load more", lomwe limangowonjezera gawo latsopano pazotsatira zomwe zikuwonetsedwa, "infinite scroll", zomwe zimagwira ntchito. pa mfundo ya "katundu zambiri" ", koma chizindikiro kuti atenge gawo lotsatira ndi kuti wosuta mpukutu zotsatira zonse anasonyeza mpaka mapeto. Kaya yankho lowoneka liri lotani, mfundo ya sampuli za data imakhala yofanana.

Nuances kukhazikitsa paging

Zitsanzo zonse zamafunso zomwe zaperekedwa pamwambapa zimagwiritsa ntchito njira ya "offset + count", pomwe funsolo limafotokoza motsatira mizere yotsatila komanso mizere ingati yomwe iyenera kubwezeredwa. Choyamba, tiyeni tiwone momwe tingapangire magawo odutsa munkhaniyi. M'malo mwake, ndapeza njira zingapo:

  • Nambala ya seriyo ya tsamba lofunsidwa (pageIndex), kukula kwa tsamba (pageSize).
  • Nambala ya siriyo ya mbiri yoyamba yobwezeredwa (startIndex), kuchuluka kwa ma rekodi pazotsatira (kuwerengera).
  • Nambala yotsatizana ya mbiri yoyamba yobweretsedwa (startIndex), nambala yotsatizana ya mbiri yomaliza yobwezeredwa (endIndex).

Poyang'ana koyamba zingawoneke kuti izi ndizoyambira kwambiri kotero kuti palibe kusiyana. Koma izi siziri choncho - njira yabwino kwambiri komanso yapadziko lonse lapansi ndi yachiwiri (StartIndex, count). Pali zifukwa zingapo zochitira izi:

  • Panjira yowerengera zotsimikizira za +1 yomwe yaperekedwa pamwambapa, njira yoyamba yokhala ndi pageIndex ndi pageSize ndiyovuta kwambiri. Mwachitsanzo, tikufuna kuwonetsa zolemba 50 patsamba lililonse. Malinga ndi algorithm yomwe ili pamwambapa, muyenera kuwerenga zolemba zina kuposa momwe mungafunire. Ngati "+1" iyi sikugwiritsidwa ntchito pa seva, zimakhala kuti tsamba loyamba tiyenera kupempha zolemba kuchokera 1 mpaka 51, lachiwiri - kuchokera 51 mpaka 101, ndi zina zotero. Ngati mutchula kukula kwa tsamba la 51 ndikuwonjezera pageIndex, ndiye kuti tsamba lachiwiri lidzabwerera kuchokera ku 52 mpaka 102, ndi zina zotero. Chifukwa chake, munjira yoyamba, njira yokhayo yokhazikitsira bwino batani kuti mupite patsamba lotsatira ndikupangitsa seva kuti iwunikenso mzere "wowonjezera", womwe udzakhala wosavuta kwambiri.
  • Njira yachitatu sizomveka konse, chifukwa kuyendetsa mafunso m'malo ambiri osungira mudzafunikabe kuwerengera m'malo mowerengera zolemba zomaliza. Kuchotsa StartIndex kuchokera ku endIndex kungakhale kophweka kwa masamu, koma ndikovuta apa.

Tsopano tiyenera kufotokoza kuipa kokhazikitsa tsamba kudzera pa "offset + quantity":

  • Kubwezeretsanso tsamba lililonse lotsatira lidzakhala lokwera mtengo komanso lochedwa kuposa lapitalo, chifukwa deta idzafunikabe kudutsa zolemba zonse "kuyambira pachiyambi" molingana ndi kufufuza ndi kusanja, ndikuyimitsa pa chidutswa chomwe mukufuna.
  • Sikuti ma DBMS onse angathe kuthandizira njirayi.

Palinso njira zina, koma zilinso zopanda ungwiro. Yoyamba mwa njirazi imatchedwa "keyset paging" kapena "seek method" ndipo ili motere: mutalandira gawo, mutha kukumbukira zomwe zili muzolemba zomaliza patsamba, ndikuzigwiritsa ntchito kuti mupeze. gawo lotsatira. Mwachitsanzo, tinayankha funso ili:

SELECT * FROM Sales.SalesOrderHeader
ORDER BY OrderDate DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY

Ndipo muzolemba zomaliza tidapeza mtengo wanthawi yoyitanitsa '2014-06-29'. Ndiye kuti mupeze tsamba lotsatira mutha kuyesa kuchita izi:

SELECT * FROM Sales.SalesOrderHeader
WHERE OrderDate < '2014-06-29'
ORDER BY OrderDate DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY

Vuto ndilakuti OrderDate ndi gawo lapadera ndipo zomwe zafotokozedwa pamwambapa zitha kuphonya mizere yambiri yofunikira. Kuti muwonjezere kusatsimikizika pafunsoli, muyenera kuwonjezera gawo lapadera pamikhalidweyo (kuganiza kuti 75074 ndiye mtengo womaliza wa kiyi yoyamba kuchokera kugawo loyamba):

SELECT * FROM Sales.SalesOrderHeader
WHERE (OrderDate = '2014-06-29' AND SalesOrderID < 75074)
   OR (OrderDate < '2014-06-29')
ORDER BY OrderDate DESC, SalesOrderID DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY

Izi zitha kugwira ntchito moyenera, koma nthawi zambiri zimakhala zovuta kukhathamiritsa popeza vutoli lili ndi OR wogwiritsa ntchito. Ngati mtengo wa kiyi yoyamba ukuwonjezeka pamene OrderDate ikuwonjezeka, ndiye kuti mkhalidwewo ukhoza kukhala wosavuta pongosiya fyuluta ndi SalesOrderID. Koma ngati palibe mgwirizano wokhazikika pakati pa zikhalidwe za kiyi yoyamba ndi gawo lomwe zotsatira zake zimasanjidwa, izi OR sizingapewedwe mu ma DBMS ambiri. Kupatulapo komwe ndikudziwa ndi PostgreSQL, yomwe imathandizira kufananitsa kwa tuple, ndipo zomwe zili pamwambapa zitha kulembedwa kuti "KULI (OrderDate, SalesOrderID) <('2014-06-29', 75074)". Popeza makiyi ophatikiza ndi magawo awiriwa, funso ngati ili liyenera kukhala losavuta.

Njira ina yachiwiri ingapezeke, mwachitsanzo, mu ElasticSearch scroll API kapena Cosmos DB - pamene pempho, kuwonjezera pa deta, limabweza chizindikiritso chapadera chomwe mungapeze gawo lotsatira la deta. Ngati chizindikiritsochi chili ndi moyo wopanda malire (monga mu Comsos DB), ndiye kuti iyi ndi njira yabwino yogwiritsira ntchito paging ndi kusintha kotsatizana pakati pamasamba (njira #2 yotchulidwa pamwambapa). Zoyipa zake zotheka: sizimathandizidwa mu DBMS zonse; chotsatira cha chunk chotsatira chikhoza kukhala ndi moyo wocheperako, womwe nthawi zambiri suli woyenera kukhazikitsa kulumikizana kwa ogwiritsa ntchito (monga ElasticSearch scroll API).

Zosefera zovuta

Tiyeni tiwunikire ntchitoyi. Tiyerekeze kuti pali chofunikira kuti mugwiritse ntchito zomwe zimatchedwa kusaka kwapadera, zomwe ndizodziwika bwino kwa aliyense kuchokera m'masitolo apaintaneti. Zitsanzo zomwe zili pamwambazi kutengera tebulo la maoda sizowonetsera kwambiri pankhaniyi, ndiye tiyeni tisinthe kupita ku tebulo la Product kuchokera ku database ya AdventureWorks:

Zotsatira zakusaka ndi zovuta za magwiridwe antchito
Kodi maganizo okhudza kusaka mwachisawawa ndi chiyani? Chowonadi ndichakuti pagawo lililonse losefera kuchuluka kwa zolembedwa zomwe zimakwaniritsa mulingo uwu zimawonetsedwa potengera zosefera zomwe zasankhidwa m'magulu ena onse.

Mwachitsanzo, ngati tisankha gulu la Njinga ndi mtundu Wakuda mu chitsanzo ichi, tebulo limangowonetsa njinga zakuda, koma:

  • Pachiyeso chilichonse mu Gulu la Magulu, kuchuluka kwazinthu zochokera m'gululi kudzawonetsedwa zakuda.
  • Pachiyeso chilichonse cha gulu la "Colours", kuchuluka kwa njinga zamtundu uwu kudzawonetsedwa.

Nachi chitsanzo cha zotsatira za zinthu zotere:

Zotsatira zakusaka ndi zovuta za magwiridwe antchito
Ngati muyang'ananso gulu la "Zovala", tebulo lidzawonetsanso zovala zakuda zomwe zili m'gulu. Chiwerengero cha zinthu zakuda mu gawo la "Mtundu" chidzawerengedwanso molingana ndi zikhalidwe zatsopano, pokhapokha mu gawo la "Categories" palibe chomwe chidzasinthe ...

Tsopano tiyeni tiyerekeze momwe izi zingagwiritsidwire ntchito pa ubale. Gulu lililonse lazinthu, monga Gulu ndi Mtundu, lidzafuna funso losiyana:

SELECT pc.ProductCategoryID, pc.Name, COUNT(1) FROM Production.Product p
  INNER JOIN Production.ProductSubcategory ps ON p.ProductSubcategoryID = ps.ProductSubcategoryID
  INNER JOIN Production.ProductCategory pc ON ps.ProductCategoryID = pc.ProductCategoryID
WHERE p.Color = 'Black'
GROUP BY pc.ProductCategoryID, pc.Name
ORDER BY COUNT(1) DESC

Zotsatira zakusaka ndi zovuta za magwiridwe antchito

SELECT Color, COUNT(1) FROM Production.Product p
  INNER JOIN Production.ProductSubcategory ps ON p.ProductSubcategoryID = ps.ProductSubcategoryID
WHERE ps.ProductCategoryID = 1 --Bikes
GROUP BY Color
ORDER BY COUNT(1) DESC

Zotsatira zakusaka ndi zovuta za magwiridwe antchito
Kodi cholakwika ndi chiyani ndi yankho ili? Ndizosavuta - sizimakula bwino. Gawo lililonse losefera limafuna funso lapadera kuti liwerengere kuchuluka kwake, ndipo mafunsowa siwophweka. M'masitolo apaintaneti, magulu ena amatha kukhala ndi magawo khumi ndi awiri a zosefera, zomwe zitha kukhala vuto lalikulu.

Nthawi zambiri pambuyo pa mawu awa ndimapatsidwa mayankho, awa:

  • Phatikizani kuchuluka kwa kuchuluka kwa funso limodzi. Mwaukadaulo izi ndizotheka kugwiritsa ntchito mawu osakira a UNION, koma sizithandiza kugwira ntchito kwambiri - nkhokweyo iyenerabe kutulutsa chidutswa chilichonse kuyambira poyambira.
  • Cache kuchuluka. Izi zimaperekedwa kwa ine pafupifupi nthawi iliyonse ndikufotokozera vuto. Chenjezo ndilakuti nthawi zambiri izi sizingatheke. Tiyerekeze kuti tili ndi "mbali" 10, iliyonse ili ndi mfundo zisanu. Izi ndi "zodzichepetsa" kwambiri poyerekeza ndi zomwe zingawoneke m'masitolo omwewo pa intaneti. Kusankhidwa kwa gawo limodzi kumakhudza kuchuluka kwa 5 ena, mwa kuyankhula kwina, pazophatikizira zilizonse zomwe zingasiyane. Mu chitsanzo chathu, pali chiwerengero cha 9 zomwe wogwiritsa ntchito angasankhe, choncho, padzakhala kuphatikiza zotheka 50. Palibe kukumbukira kapena nthawi yokwanira yodzaza deta yotere. Apa mutha kutsutsa ndikunena kuti si zophatikizira zonse zomwe zili zenizeni ndipo wogwiritsa ntchito nthawi zambiri samasankha njira zopitilira 250-5. Inde, ndizotheka kutsitsa mwaulesi ndikusunga kuchuluka kwa zomwe zasankhidwa, koma kusankha kochulukira komwe kumakhalapo, kachesi ngati kameneka kamakhala kocheperako komanso kuwonekera kwambiri mavuto anthawi yoyankhira (makamaka ngati Seti ya data imasintha pafupipafupi).

Mwamwayi, vuto loterolo lakhala ndi mayankho ogwira mtima omwe amagwira ntchito molosera pazambiri zambiri. Pazilizonse mwazosankhazi, ndizomveka kugawaniza kuwerengeranso kwa mawonekedwe ndi kulandira tsamba lazotsatira kukhala mafoni awiri ofanana ndi seva ndikukonzekera mawonekedwe a ogwiritsa ntchito kuti kutsitsa deta ndi mawonekedwe "sikusokoneza" kuwonetsa zotsatira.

  • Itanani kuwerengeranso kwathunthu kwa "mbali" mosowa momwe mungathere. Mwachitsanzo, musawerengenso chilichonse nthawi iliyonse mukasintha njira zofufuzira, m'malo mwake pezani kuchuluka kwa zotsatira zomwe zikugwirizana ndi momwe zilili pano ndikupangitsa wogwiritsa ntchito kuti aziwonetsa - "1425 zolembedwa zapezeka, onetsani?" Wogwiritsa akhoza kupitiriza kusintha mawu osakira kapena dinani batani la "Show". Pokhapokha pazochitika zachiwiri pamene zopempha zonse zopezera zotsatira ndi kuwerengeranso kuchuluka kwa "mbali" zonse zidzachitidwa. Pankhaniyi, monga mukuwonera mosavuta, muyenera kuthana ndi pempho kuti mupeze kuchuluka kwazotsatira ndi kukhathamiritsa kwake. Njirayi imapezeka m'masitolo ambiri ang'onoang'ono pa intaneti. Mwachiwonekere, iyi si njira yothetsera vutoli, koma muzochitika zosavuta kungakhale kusagwirizana kwabwino.
  • Gwiritsani ntchito mainjini osakira kuti mupeze zotsatira ndikuwerengera magawo, monga Solr, ElasticSearch, Sphinx ndi ena. Zonsezi zidapangidwa kuti zizipanga "magawo" ndikuchita izi moyenera chifukwa cha index inverted. Momwe injini zosakira zimagwirira ntchito, chifukwa chake zimakhala zogwira mtima kwambiri kuposa nkhokwe zodziwika bwino, machitidwe ndi misampha yomwe ilipo - uwu ndi mutu wankhani ina. Apa ndikufuna ndikuwonetseni kuti injini yosakira siyingakhale m'malo mwazosungirako zazikulu; imagwiritsidwa ntchito ngati chowonjezera: zosintha zilizonse zomwe zili m'dawunilodi yayikulu zomwe zikuyenera kusaka zimalumikizidwa muzosaka; Makina osakira nthawi zambiri amangolumikizana ndi injini yosakira ndipo samapeza database yayikulu. Imodzi mwa mfundo zofunika kwambiri apa ndi momwe mungagwirizanitse izi modalirika. Zonse zimadalira zofuna za "nthawi yochitapo kanthu". Ngati nthawi yapakati pa kusintha kwa database yayikulu ndi "kuwonekera" kwake pakufufuza sikuli kofunikira, mutha kupanga ntchito yomwe imasaka zolemba zomwe zasinthidwa posachedwa mphindi zingapo zilizonse ndikuzilemba. Ngati mukufuna nthawi yayifupi kwambiri yoyankha, mutha kugwiritsa ntchito zina bokosi lotuluka kutumiza zosintha ku ntchito yosakira.

anapezazo

  1. Kukhazikitsa paging-side paging ndizovuta kwambiri ndipo zimangomveka kukula mwachangu kapena ma seti akulu akulu. Palibe njira yeniyeni yodziwira momwe mungayesere "yachikulu" kapena "ikukula mofulumira", koma ndikutsatira njira iyi:
    • Ngati kulandira kusonkhanitsa kwathunthu kwa deta, poganizira nthawi ya seva ndi kutumiza kwa maukonde, kumagwirizana ndi zofunikira zogwirira ntchito nthawi zonse, palibe chifukwa chokhazikitsa paging pa mbali ya seva.
    • Pakhoza kukhala zochitika zomwe palibe mavuto omwe amayembekezeredwa posachedwa, popeza pali deta yochepa, koma kusonkhanitsa deta kumakula nthawi zonse. Ngati seti ina ya data m'tsogolomu sichingakhutiritsenso mfundo yapitayi, ndibwino kuti muyambe tsamba nthawi yomweyo.
  2. Ngati palibe chofunikira kwambiri pabizinesi kuwonetsa kuchuluka kwazotsatira kapena kuwonetsa manambala amasamba, ndipo makina anu alibe injini yofufuzira, ndibwino kuti musagwiritse ntchito mfundozi ndikuganizira njira #2.
  3. Ngati pali chofunikira chodziwika bwino pakufufuza kwapang'onopang'ono, muli ndi zosankha ziwiri popanda kusiya ntchito:
    • Osawerengeranso kuchuluka konse nthawi zonse mukasintha zofufuza.
    • Gwiritsani ntchito injini zosakira monga Solr, ElasticSearch, Sphinx ndi ena. Koma ziyenera kumveka kuti sizingalowe m'malo mwa database yayikulu, ndipo iyenera kugwiritsidwa ntchito ngati chowonjezera pazosungira zazikulu zothetsera mavuto osakira.
  4. Komanso, pankhani ya kusaka kwa mbali, ndizomveka kugawa kubweza kwa tsamba lazotsatira ndikuwerengera zopempha ziwiri zofanana. Kuwerengera kuchuluka kungatenge nthawi yayitali kuposa kupeza zotsatira, pomwe zotsatira zake zimakhala zofunika kwambiri kwa wogwiritsa ntchito.
  5. Ngati mukugwiritsa ntchito nkhokwe ya SQL posaka, kusintha kulikonse kwa kachidindo kokhudzana ndi gawoli kuyenera kuyesedwa bwino kuti mugwiritse ntchito kuchuluka koyenera kwa data (kupitilira voliyumu mumndandanda wamoyo). Ndikoyeneranso kugwiritsa ntchito kuyang'anira nthawi ya mafunso pazochitika zonse za nkhokwe, makamaka pa "live" imodzi. Ngakhale zonse zikanakhala bwino ndi mapulani amafunso pagawo lachitukuko, kuchuluka kwa deta kumakula, zinthu zitha kusintha kwambiri.

Source: www.habr.com

Kuwonjezera ndemanga