Sephetho sa liphetho le mathata a tšebetso

E 'ngoe ea maemo a tloaelehileng lits'ebetsong tsohle tseo re li tloaetseng ke ho batla data ho latela mekhoa e itseng le ho e hlahisa ka mokhoa o balehang habonolo. Ho ka 'na ha boela ha e-ba le likhetho tse ling tsa ho hlopha, ho hlopha, le ho paging. Mosebetsi, ka khopolo, ha o na thuso, empa ha ba o rarolla, bahlahisi ba bangata ba etsa liphoso tse ngata, tseo hamorao li bakang hore tlhahiso e senyehe. A re lekeng ho nahana ka mekhoa e fapaneng ea ho rarolla bothata bona le ho etsa litlhahiso tsa ho khetha ts'ebetsong e sebetsang ka ho fetisisa.

Sephetho sa liphetho le mathata a tšebetso

Khetho ea ho bala #1

Khetho e bonolo ka ho fetisisa e tlang kelellong ke pontšo ea leqephe le leqephe la liphetho tsa lipatlisiso ka mokhoa oa eona oa khale.

Sephetho sa liphetho le mathata a tšebetso
Ha re re kopo ea hau e sebelisa database ea likamano. Tabeng ena, ho hlahisa tlhahisoleseling ka foromo ena, o tla hloka ho botsa lipotso tse peli tsa SQL:

  • Fumana mela bakeng sa leqephe la hajoale.
  • Bala palo eohle ea mela e lumellanang le mekhoa ea ho batla - sena sea hlokahala ho hlahisa maqephe.

Ha re shebeng potso ea pele re sebelisa database ea liteko tsa MS SQL joalo ka mohlala AdventureWorks bakeng sa seva sa 2016. Bakeng sa sena re tla sebelisa Tafole ea Sales.SalesOrderHeader:

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

Potso e kaholimo e tla khutlisa liodara tsa pele tse 50 ho tsoa lethathamong, tse hlophisitsoeng ka letsatsi le theoha la tlatsetso, ka mantsoe a mang, liodara tse 50 tsa morao-rao.

E sebetsa ka potlako setsing sa liteko, empa ha re shebeng moralo oa ts'ebetso le lipalo-palo tsa I/O:

Sephetho sa liphetho le mathata a tšebetso

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.

U ka fumana lipalo-palo tsa I/O bakeng sa potso e 'ngoe le e 'ngoe ka ho sebelisa taelo ea SET STATISTICS IO ON nakong ea nako ea ho botsa potso.

Joalo ka ha u bona ho tsoa leanong la ts'ebetso, khetho e matla ka ho fetesisa ke ho hlophisa mela eohle ea tafole ea mohloli ka letsatsi le kenyelletsoeng. 'Me bothata ke hore ha mela e mengata e hlaha tafoleng, ho tla ba "thata" ho hlophisa. Ha e le hantle, maemo a joalo a lokela ho qojoa, ka hona, a re ke re kenye index ho letsatsi la tlatsetso 'me re bone hore na tšebeliso ea lisebelisoa e fetohile:

Sephetho sa liphetho le mathata a tšebetso

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.

Ho hlakile hore e ntlafetse haholo. Empa na mathata ’ohle a rarollotsoe? Ha re fetoleng potso ea ho batla liodara moo theko eohle ea thepa e fetang $100:

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

Sephetho sa liphetho le mathata a tšebetso

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.

Re na le boemo bo qabolang: moralo oa lipotso ha o bobe haholo ho feta o fetileng, empa palo ea 'nete ea lipalo tse utloahalang e batla e le kholo habeli ho feta ka sekeno se felletseng sa tafole. Ho na le mokhoa oa ho tsoa - haeba re etsa index e kopaneng ho tsoa ho index e seng e ntse e le teng mme re eketsa theko eohle ea thepa joalo ka karolo ea bobeli, re tla boela re fumane lipalo tse 165 tse utloahalang:

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

Letoto lena la mehlala le ka ntšetsoa pele nako e telele, empa mehopolo e 'meli ea sehlooho eo ke batlang ho e hlalosa mona ke:

  • Ho kenya mokhoa ofe kapa ofe o mocha kapa ho hlophisa tlhophiso ho seo u se batlang ho ka ba le tšusumetso e kholo ho potlaka ea seo u se batlang.
  • Empa haeba re hloka ho tlosa karolo feela ea data, eseng liphetho tsohle tse tsamaellanang le mantsoe a patlo, ho na le mekhoa e mengata ea ho ntlafatsa potso e joalo.

Joale ha re feteleng potsong ea bobeli e boletsoeng qalong - e balang palo ea lirekoto tse khotsofatsang mokhoa oa ho batla. Ha re nke mohlala o tšoanang - ho batla liodara tse fetang $100:

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

Ka lebaka la index ea composite e bontšitsoeng ka holimo, re fumana:

Sephetho sa liphetho le mathata a tšebetso

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.

Taba ea hore potso e feta har'a index eohle ha e makatse, kaha karolo ea SubTotal ha e boemong ba pele, kahoo potso e ke ke ea e sebelisa. Bothata bo rarolloa ka ho kenyelletsa index e 'ngoe tšimong ea SubTotal, ka lebaka leo e fana ka lipalo tse 48 feela tse utloahalang.

U ka fana ka mehlala e meng e seng mekae ea likopo tsa ho bala palo, empa moelelo o lula o tšoana: ho amohela sengoathoana sa data le ho bala kakaretso ea chelete ke likopo tse peli tse fapaneng haholo, 'me e' ngoe le e 'ngoe e hloka mehato ea eona bakeng sa ntlafatso. Ka kakaretso, u ke ke ua khona ho fumana motsoako oa li-index tse sebetsang hantle ka ho lekana bakeng sa lipotso tseo ka bobeli.

Ka hona, e 'ngoe ea litlhokahalo tsa bohlokoa tse lokelang ho hlakisoa ha ho etsoa tharollo e joalo ea ho batla ke hore na ehlile ho bohlokoa hore khoebo e bone palo eohle ea lintho tse fumanoeng. Hangata ho etsahala hore che. 'Me ho tsamaea ka linomoro tsa maqephe a khethehileng, ka maikutlo a ka, ke tharollo e nang le sebaka se patisaneng haholo, kaha maemo a mangata a paging a shebahala joaloka "ea leqepheng le latelang."

Khetho ea ho bala #2

Ha re nke hore basebelisi ha ba tsotelle ho tseba palo eohle ea lintho tse fumanoeng. Ha re leke ho nolofatsa leqephe la ho batla:

Sephetho sa liphetho le mathata a tšebetso
Ha e le hantle, ntho e le 'ngoe feela e fetohileng ke hore ha ho na mokhoa oa ho ea ho linomoro tse itseng tsa maqephe,' me joale tafole ena ha e hloke ho tseba hore na ho ka ba le ba bakae e le hore ba e bontše. Empa potso e hlaha - tafole e tseba joang haeba ho na le data bakeng sa leqephe le latelang (e le hore u ka bontša ka nepo sehokelo sa "E latelang")?

Karabo e bonolo haholo: o ka bala ho tswa ho database rekoto e le 'ngoe ho feta e hlokahalang bakeng sa pontšo,' me boteng ba tlaleho ena "e eketsehileng" e tla bontša hore na ho na le karolo e latelang. Ka tsela ena, o hloka feela ho tsamaisa kopo e le 'ngoe ho fumana leqephe le le leng la data, e leng ho ntlafatsang haholo ts'ebetso le ho etsa hore ho be bonolo ho ts'ehetsa ts'ebetso e joalo. Ts'ebetsong ea ka, ho ne ho e-na le nyeoe ha ho hana ho bala palo eohle ea litlaleho ho potlakisa ho fana ka liphello ka makhetlo a 4-5.

Ho na le likhetho tse 'maloa tsa mosebelisi bakeng sa mokhoa ona: litaelo tsa "khutla" le "pele", joalo ka mohlala o kaholimo, konopo ea "load more", e eketsang karolo e ncha ho liphetho tse bonts'itsoeng, "infinite scroll", e sebetsang. ka molao-motheo oa "mojaro o eketsehileng" ", empa letšoao la ho fumana karolo e latelang ke hore mosebedisi a tsamaise liphetho tsohle tse bontšitsoeng ho fihlela qetellong. Ho sa tsotellehe hore na tharollo ea pono ke efe, molao-motheo oa sampole ea data o ntse o tšoana.

Nuances ea ts'ebetsong ea paging

Mehlala eohle ea lipotso e fanoeng ka holimo e sebelisa mokhoa oa "offset + count", ha potso ka boeona e bolela hore na mela ea sephetho e lokela ho khutlisoa ka tatellano efe le hore na ke mela e mekae e lokelang ho khutlisoa. Taba ea pele, a re boneng hore na ho molemo ho hlophisa paramethara joang tabeng ena. Ka ts'ebetso, ke bone mekhoa e 'maloa:

  • Nomoro ea seriale ea leqephe le batloang (pageIndex), boholo ba leqephe (pageSize).
  • Nomoro ea serial ea rekoto ea pele e tla khutlisoa (startIndex), palo e kholo ea lirekoto sephethong (palo).
  • Nomoro ea tatellano ea rekoto ea pele e tla khutlisoa (startIndex), nomoro ea tatellano ea rekoto ea ho qetela e tla khutlisoa (endIndex).

Ha u sheba ka lekhetlo la pele ho ka 'na ha bonahala eka sena ke sa mathomo hoo ha ho na phapang. Empa sena ha se joalo - khetho e bonolo ka ho fetisisa le ea bokahohle ke ea bobeli (startIndex, count). Ho na le mabaka a 'maloa a sena:

  • Bakeng sa mokhoa oa +1 oa ho hlahloba liphoso o fanoeng ka holimo, khetho ea pele e nang le pageIndex le pageSize ha e bonolo haholo. Ka mohlala, re batla ho hlahisa li-post tsa 50 leqepheng le leng le le leng. Ho latela algorithm e kaholimo, o hloka ho bala rekoto e le 'ngoe ho feta kamoo ho hlokahalang. Haeba "+1" ena e sa sebelisoe ho seva, ho hlakile hore leqepheng la pele re tlameha ho kopa lirekoto ho tloha ho 1 ho isa ho 51, bakeng sa bobeli - ho tloha ho 51 ho ea ho 101, joalo-joalo. Haeba u totobatsa boholo ba leqephe la 51 'me u eketsa leqepheIndex, joale leqephe la bobeli le tla khutla ho tloha ho 52 ho ea ho 102, joalo-joalo. Ka hona, khethong ea pele, tsela e le 'ngoe feela ea ho kenya konopo e nepahetseng ho ea leqepheng le latelang ke ho etsa hore seva se hlahlobe "mohala" o eketsehileng, e tla ba ntho e hlakileng haholo.
  • Khetho ea boraro ha e utloahale ho hang, kaha ho botsa lipotso ho li-database tse ngata u ntse u tla hloka ho fetisa palo ho fapana le index ea rekoto ea ho qetela. Ho tlosa StartIndex ho tloha endIndex e kanna ea ba ts'ebetso e bonolo ea arithmetic, empa ha e na thuso mona.

Joale re lokela ho hlalosa mathata a ho kenya ts'ebetsong paging ka "offset + quantity":

  • Ho khutlisa leqephe le leng le le leng le latelang ho tla ba theko e boima haholo le butle ho feta e fetileng, hobane database e ntse e tla hloka ho feta litlalehong tsohle "ho tloha qalong" ho ea ka mokhoa oa ho batla le ho hlophisa, ebe o emisa sekhechana se lakatsehang.
  • Ha se li-DBMS tsohle tse ka tšehetsang mokhoa ona.

Ho na le mekhoa e meng, empa hape ha ea phethahala. Ea pele ea mekhoa ena e bitsoa "keyset paging" kapa "seek method" 'me e tjena: ka mor'a ho fumana karolo, u ka hopola litekanyetso tsa tšimo tlalehong ea ho qetela leqepheng, ebe u li sebelisa ho fumana. karolo e latelang. Ka mohlala, re ile ra botsa potso e latelang:

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

'Me tlalehong ea ho qetela re fumane boleng ba letsatsi la taelo ea' 2014-06-29 '. Ebe ho fumana leqephe le latelang u ka leka ho etsa sena:

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

Bothata ke hore OrderDate ke lebala le sa ikhethang 'me boemo bo boletsoeng ka holimo bo ka' na ba fosa mela e mengata e hlokahalang. Ho eketsa ho hloka botsitso potsong ena, o hloka ho eketsa tšimo e ikhethang ho boemo (ho nka hore 75074 ke boleng ba ho qetela ba senotlolo sa mantlha ho tloha karolong ea pele):

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

Khetho ena e tla sebetsa ka nepo, empa ka kakaretso ho tla ba thata ho e ntlafatsa kaha boemo bo na le OR opareitara. Haeba boleng ba senotlolo sa mantlha bo eketseha ha OrderDate e ntse e eketseha, joale boemo bo ka nolofalloa ka ho siea feela filthara ka SalesOrderID. Empa haeba ho se na kamano e tiileng pakeng tsa boleng ba senotlolo sa mantlha le tšimo eo sephetho se hlophisitsoeng ka eona, sena OR se ke ke sa qojoa ho li-DBMS tse ngata. Mokhelo oo ke o tsebang ke PostgreSQL, e tšehetsang papiso ea tuple ka botlalo, 'me boemo bo ka holimo bo ka ngoloa e le "WHERE (OrderDate, SalesOrderID) <('2014-06-29', 75074)". Ka lebaka la senotlolo se kopaneng le likarolo tsena tse peli, potso e kang ena e lokela ho ba bonolo.

Mokhoa o mong oa bobeli o ka fumanoa, mohlala, ho ElasticSearch scroll API kapa Cosmos DB - ha kopo, ho phaella ho data, e khutlisa sekhetho se khethehileng seo u ka se fumanang karolo e latelang ea data. Haeba sekhetho sena se na le nako e sa lekanyetsoang ea bophelo (joalo ka Comsos DB), joale ena ke mokhoa o motle oa ho kenya tšebetsong paging ka phetoho e latellanang lipakeng tsa maqephe (khetho #2 e boletsoeng ka holimo). Mefokolo ea eona e ka bang teng: ha e tšehetsoe ho li-DBMS tsohle; sephetho sa sekhetho se latelang se ka ba le bophelo bo lekanyelitsoeng, boo ka kakaretso bo sa lokelang ho kenya tšebetsong litšebelisano tsa basebelisi (joalo ka ElasticSearch scroll API).

Ho sefa ho rarahaneng

Ha re thatafatse mosebetsi ho feta. A re re ho na le tlhokahalo ea ho kenya ts'ebetsong seo ho thoeng ke ho batla ka mahlakoreng, e leng se tsebahalang haholo ho bohle ba tsoang mabenkeleng a marang-rang. Mehlala e kaholimo e ipapisitseng le tafole ea litaelo ha e bontše haholo ntlheng ena, ka hona, ha re fetoheleng tafoleng ea Sehlahisoa ho tsoa ho database ea AdventureWorks:

Sephetho sa liphetho le mathata a tšebetso
Maikutlo a mabapi le ho batla ka mahlakoreng a mabeli ke afe? 'Nete ke hore bakeng sa karolo e' ngoe le e 'ngoe ea filthara palo ea lirekoto tse fihlelang ntlha ena e bonts'itsoe ho nahanoa ka lihloela tse khethiloeng likarolong tse ling kaofela.

Mohlala, haeba re khetha sehlopha sa Libaesekele le 'mala o Motšo mohlaleng ona, tafole e tla bonts'a libaesekele tse ntšo feela, empa:

  • Bakeng sa ntlha e 'ngoe le e 'ngoe ea sehlopha sa Lihlopha, palo ea lihlahisoa tse tsoang sehlopheng seo e tla bontšoa ka botšo.
  • Bakeng sa tekanyo e 'ngoe le e' ngoe ea sehlopha sa "Mebala", palo ea libaesekele tsa 'mala ona e tla bontšoa.

Mona ke mohlala oa sephetho sa maemo a joalo:

Sephetho sa liphetho le mathata a tšebetso
Haeba u boetse u hlahloba sehlopha sa "Liaparo", tafole e tla boela e bontše liaparo tse ntšo tse teng ka har'a thepa. Palo ea lihlahisoa tse ntšo karolong ea "Mmala" e tla boela e baloe hape ho ea ka maemo a macha, feela karolong ea "Categories" ha ho letho le tla fetoha ... Ke tšepa hore mehlala ena e lekane ho utloisisa mokhoa o tloaelehileng oa ho batla algorithm.

Joale a re nahaneng hore na sena se ka kenngoa ts'ebetsong joang motheong oa likamano. Sehlopha se seng le se seng sa litekanyetso, joalo ka Sehlopha le Mmala, se tla hloka potso e arohaneng:

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

Sephetho sa liphetho le mathata a tšebetso

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

Sephetho sa liphetho le mathata a tšebetso
Phoso ke efe ka tharollo ee? E bonolo haholo - ha e eketsehe hantle. Karolo e 'ngoe le e 'ngoe ea sefe e hloka potso e arohaneng ho bala palo, 'me lipotso tsena ha li bonolo. Mabenkeleng a marang-rang, likarolo tse ling li ka ba le likarolo tse 'maloa tsa li-filters, e ka bang bothata bo tebileng ba ts'ebetso.

Hangata ka mor'a lipolelo tsena ke fuoa tharollo, e leng:

  • Kopanya lipalo tsohle tsa palo ho potso e le 'ngoe. Ka botekgeniki sena se ka khoneha ka ho sebelisa lentsoe la bohlokoa la UNION, empa e ke ke ea thusa ts'ebetso haholo - database e ntse e tla tlameha ho phethisa sekhechana se seng le se seng ho tloha qalong.
  • Cache bongata. Sena se khothaletsoa ho nna hoo e ka bang nako le nako ha ke hlalosa bothata. Tlhokomeliso ke hore sena ha se khonehe ka kakaretso. Ha re re re na le "likarolo" tse 10, e 'ngoe le e' ngoe e na le litekanyetso tse 5. Ena ke boemo bo "inyenyefatsang" haholo ha bo bapisoa le se ka bonoang mabenkeleng a tšoanang a marang-rang. Khetho ea karolo e le 'ngoe e ama bongata ho tse ling tse 9, ka mantsoe a mang, bakeng sa motsoako o mong le o mong oa litekanyetso lipalo li ka fapana. Mohlala oa rona, ho na le kakaretso ea litekanyetso tse 50 tseo mosebelisi a ka li khethang, ka hona, ho tla ba le mefuta e ka bang 250. Ha ho na mohopolo o lekaneng kapa nako ea ho tlatsa lethathamo le joalo la data. Mona u ka hanyetsa 'me ua re ha se mefuta eohle ea metsoako' me ke ka seoelo mosebedisi a khethang ho feta 5-10. E, hoa khoneha ho kenya ka botsoa le ho boloka palo ea lintho tse kileng tsa khethoa, empa ha likhetho li le ngata, cache e joalo e tla fokola 'me mathata a nako ea karabo a tla bonahala haholoanyane (haholo-holo haeba sete ya data e fetoha kgafetsa) .

Ka lehlohonolo, bothata bo joalo ke khale bo e-na le litharollo tse sebetsang hantle tse sebetsang esale pele ka bongata bo boholo ba data. Bakeng sa e 'ngoe ea likhetho tsena, hoa utloahala ho arola palo e ncha ea likarolo le ho amohela leqephe la sephetho hore e be mehala e 'meli e ts'oanang ho seva le ho hlophisa sebopeho sa mosebelisi ka tsela eo ho kenya data ka likarolo "ha ho sitise" ponts'o. liphetho tsa lipatlisiso.

  • Letsetsa palo e felletseng ea "likarolo" ka seoelo kamoo ho ka khonehang. Ka mohlala, u se ke ua bala ntho e 'ngoe le e' ngoe nako le nako ha mekhoa ea ho batla e fetoha, empa ho e-na le hoo fumana palo eohle ea liphetho tse lumellanang le maemo a hona joale 'me u khothalletse mosebedisi ho li bontša - "1425 rekoto e fumanoeng, e bontša?" Mosebelisi a ka tsoela pele ho fetola mantsoe a patlo kapa a tobetse konopo ea "show". Ke feela tabeng ea bobeli moo likopo tsohle tsa ho fumana liphetho le ho bala palo e 'ngoe ea "likarolo" tsohle li tla etsoa. Tabeng ena, joalo ka ha u bona habonolo, u tla tlameha ho sebetsana le kopo ea ho fumana palo eohle ea liphetho le ntlafatso ea eona. Mokhoa ona o ka fumanoa mabenkeleng a mangata a manyenyane a marang-rang. Ho hlakile hore sena ha se panacea bakeng sa bothata bona, empa maemong a bonolo e ka ba ho sekisetsa ho hotle.
  • Sebelisa lienjineri tsa ho batla ho fumana liphetho le ho bala likarolo, joalo ka Solr, ElasticSearch, Sphinx le tse ling. Kaofela li etselitsoe ho aha "likarolo" mme li etsa sena hantle ka lebaka la index e sothehileng. Lienjineri tsa ho batla li sebetsa joang, ke hobane'ng ha maemong a joalo li sebetsa ho feta li-database tsa sepheo se akaretsang, ke mekhoa efe le maraba a teng - ena ke sehlooho sa sengoloa se arohaneng. Mona ke rata ho lebisa tlhokomelo ea hau tabeng ea hore enjene ea ho batla e ke ke ea e-ba sebaka sa polokelo ea data e ka sehloohong; e sebelisoa e le tlatsetso: liphetoho leha e le life tsa database tse ka sehloohong tse amanang le lipatlisiso li lumellana le index ea lipatlisiso; Hangata enjene ea ho batla e sebelisana feela le enjine ea ho batla 'me ha e fihlelle polokelong ea litaba ea mantlha. E 'ngoe ea lintlha tsa bohlokoa mona ke mokhoa oa ho hlophisa khokahano ena ka botšepehi. Tsohle li itšetlehile ka litlhoko tsa "nako ea ho arabela". Haeba nako e pakeng tsa phetoho sebakeng sa polokelo ea boitsebiso le "ponahatso" ea eona ha e batlisisa e se ea bohlokoa, u ka etsa tšebeletso e batlang lirekoto tse sa tsoa fetoloa metsotso e meng le e meng e 'maloa ebe u li hlahisa. Haeba u batla nako e khuts'oane ka ho fetesisa ea karabo, u ka kenya ts'ebetsong ntho e joalo lebokose la tšebetso ho romela liapdeite tsa tšebeletso ea ho batla.

fumanoeng ke

  1. Ho kenya tšebetsong paging ea lehlakore la seva ke bothata bo boholo 'me hoa utloahala bakeng sa li-data tse ntseng li hola ka potlako kapa tse kholo feela. Ha ho na mokhoa o hlakileng oa ho lekanya "kholo" kapa "ho hola ka potlako", empa ke latela mokhoa ona:
    • Haeba ho amohela pokello e feletseng ea data, ho nahanela nako ea seva le phetisetso ea marang-rang, ho lumellana le litlhoko tsa ts'ebetso ka tloaelo, ha ho na ntlha ea ho kenya ts'ebetsong paging ka lehlakoreng la seva.
    • Ho ka 'na ha e-ba le boemo boo ho seng mathata a ts'ebetso a lebeletsoeng haufinyane, kaha ho na le boitsebiso bo fokolang, empa pokello ea lintlha e ntse e hōla kamehla. Haeba sete e 'ngoe ea data nakong e tlang e ka' na ea se ke ea hlola e khotsofatsa ntlha e fetileng, ho molemo ho qala paging hang-hang.
  2. Haeba ho se na tlhokahalo e tiileng karolong ea khoebo ea ho bonts'a palo eohle ea liphetho kapa ho bonts'a linomoro tsa maqephe, mme sistimi ea hau ha e na mochini oa ho batla, ho molemo hore u se ke ua kenya tšebetsong lintlha tsena ebe u nahana ka khetho ea #2.
  3. Haeba ho na le tlhokahalo e hlakileng ea ho batla ka mahlakoreng, u na le likhetho tse peli ntle le ho tela ts'ebetso:
    • Se ke oa bala bocha palo nako le nako ha mokhoa oa ho batla o fetoha.
    • Sebelisa lienjineri tsa ho batla tse kang Solr, ElasticSearch, Sphinx le tse ling. Empa e lokela ho utloisisoa hore e ke ke ea e-ba sebaka sa polokelo ea boitsebiso bo ka sehloohong, 'me e lokela ho sebelisoa e le tlatsetso ho polokelo e kholo ea ho rarolla mathata a ho batla.
  4. Hape, tabeng ea ho batla ka mahlakoreng a mabeli, hoa utloahala ho arola phuputso ea leqephe la sephetho sa lipatlisiso le ho bala likopo tse peli tse tšoanang. Ho bala palo ho ka nka nako e telele ho feta ho fumana liphetho, athe liphetho li bohlokoa haholo ho mosebelisi.
  5. Haeba u sebelisa database ea SQL bakeng sa ho batla, phetoho leha e le efe ea khoutu e amanang le karolo ena e lokela ho lekoa hantle bakeng sa ts'ebetso ho palo e nepahetseng ea data (ho feta molumo oa boitsebiso bo phelang). Ho bohlokoa hape ho beha leihlo nako ea ho phethisoa ha lipotso maemong ohle a polokelo ea litaba, haholoholo ho "phela". Esita le haeba ntho e 'ngoe le e' ngoe e ne e le hantle ka merero ea lipotso sethaleng sa nts'etsopele, ha palo ea data e ntse e hōla, boemo bo ka fetoha ka mokhoa o hlakileng.

Source: www.habr.com

Eketsa ka tlhaloso