pl / pgsql上ぎã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚ĩãƒŧバãƒŧ

過åŽģぎPGデイぎ 1つであるプロジェクト111ぎ IT部長Artem Makarovは 、Postgresでį‹Ŧč‡ĒぎERPã‚ˇã‚šãƒ†ãƒ ã‚’æ§‹į¯‰ã—、゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖでã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚ĩãƒŧバãƒŧを構į¯‰ã™ã‚‹ãĒおぎã‚ŊãƒĒãƒĨãƒŧã‚ˇãƒ§ãƒŗをäŧæĨ­ãŒãŠãŽã‚ˆã†ãĢæąē厚できるかをčĒžãŖた。 これらぎおれがæ‚Ēã„ã€č‰¯ã„éĸがįļšã„た。 Artemが多くぎã‚ŗãƒŧドを書いたãĢもかかわらず、æąēしãĻæœŦåŊ“ぎプログナマãƒŧではãĒかãŖたことはæŗ¨į›ŽãĢ値しぞす。 むしろ、åŊŧは反マネãƒŧジãƒŖãƒŧであり、äŧé“č€…ã§ã‚ã‚Šã€ITã‚ŊãƒĒãƒĨãƒŧã‚ˇãƒ§ãƒŗぎビジネ゚ãĢ寞するロビイ゚トとå‘ŧばれることがありぞす。 したがãŖãĻ、åŊŧぎãƒŦポãƒŧトでは、ビãƒĨãƒŧã¯æŠ€čĄ“å°‚é–€åŽļからだけでãĒく、マネãƒŧジãƒŖãƒŧからぎもぎでもありぞす。

į§ãŸãĄã¯čĒ°ã§ã™ã‹īŧŸ

į§ãŸãĄãŽé¸æŠžã‚’čĒŦ明するためãĢは、äŧšį¤žãŽčŠŗį´°ã‚’čĒŦæ˜Žã™ã‚‹äžĄå€¤ãŒã‚ã‚Šãžã™ã€‚ Project 111 Webã‚ĩイトを開くとīŧˆãƒ—ログナマはæ—ĸãĢã‚šãƒŠãƒƒã‚ˇãƒĨドット劚果があるかおうかをįĸēčĒã—ãĻいぞすīŧ‰ã€eã‚ŗマãƒŧ゚ぎã‚Ēãƒŗナイãƒŗ゚トã‚ĸと非常ãĢよくäŧŧãĻいぞすが、ã‚Ēãƒŗナイãƒŗ゚トã‚ĸぎことではãĒく、B2Bです。 つぞり、į§ãŸãĄãĢは常é€ŖåŽĸがいãĻ、åŊŧらぎ多くがいãĻ、マãƒŧã‚ąãƒ†ã‚Ŗãƒŗグはį‹‚ãŖãĻおり、新しい゚キãƒŧãƒ ã€å‰˛åŧ•ã€ãƒ—ロãƒĸãƒŧã‚ˇãƒ§ãƒŗãĒãŠã‚’č€ƒãˆãĻã„ã‚‹ãŽã§ã€č˛ŠåŖ˛ãĢはかãĒã‚Šč¤‡é›‘ãĒビジネ゚プロã‚ģã‚šãŒã‚ã‚Šã€é•ˇã„æ™‚é–“ãŒã‹ã‹ã‚Šã€ãģãŧ1é€ąé–“ã‹ã‹ã‚Šãžã™ã€‚ ã‚ĩã‚¤ãƒˆãŽéĄ§åŽĸであるパãƒŧ​​トナãƒŧは、ERPã‚ˇã‚šãƒ†ãƒ ãŽæœŦæ ŧįš„ãĒåž“æĨ­å“Ąã§ã™ ã€‚ã¤ãžã‚Šã€č˛ŠåŖ˛éƒ¨é–€ãŽéžå¸¸ãĢ多くぎ抟čƒŊをäŊŋį”¨ã—ãĻいぞすが、č‡Ēåˆ†ã§æ”¯æ‰•ã„ã‚’čĄŒã†ã“ã¨ã¯ã§ããžã›ã‚“ã€‚ ããŽãŸã‚ã€ã‚ˇã‚šãƒ†ãƒ ã¯ãƒ•ãƒ­ãƒŗトエãƒŗドをåĢむ非常ãĢ重いです。

į§ãŸãĄã¯ä¸­čĻæ¨ĄãŽäŧšį¤žã§ã™ã€‚ 数はそれãģお多くありぞせん。2300äēēぎãƒĻãƒŧã‚ļãƒŧがã‚ĩイトãĢログã‚ĒãƒŗしãĻいぞすīŧˆå‰˛åŧ•ã¨æĄäģļを備えたパãƒŧトナãƒŧīŧ‰ãŒã€ã“れらは「ヘビãƒŧãƒĻãƒŧã‚ļãƒŧ」です。つぞり、倉åēĢãžãŸã¯č˛Ąå‹™ãŽåž“æĨ­å“Ąã¨åŒã˜č˛ čˇã‚’äŊœæˆã—ぞす。 į§ãŸãĄã¯é•ˇã„間イãƒŗã‚ŋãƒŧネットãĢčŗ­ã‘ãĻきぞした。 æŗ¨æ–‡ãŽ97〜98īŧ…は ã‚Ēãƒŗナイãƒŗã§čĄŒã‚ã‚Œã€æŗ¨æ–‡ãŽ60īŧ…はå–ļæĨ­å“ĄãŽæ‰‹ãĢč§ĻれることãĒく、č‡Ē動įš„ãĢ倉åēĢãĢčĄŒããžã™ã€‚

č‡Ēåˆ†ã§ã‚ˇã‚šãƒ†ãƒ ã‚’æ§‹į¯‰ã™ã‚‹ã¨ã„うã‚ĸイデã‚ĸをおぎようãĢしãĻ思いついたぎですかīŧŸ

2000åš´äģŖぎ初め、į§ãŸãĄãŒã“ã‚Œã‚’čĄŒãŖãĻいたとき、「éĢ˜č˛ čˇã€ã¨ã„ã†č¨€č‘‰ã¯čžã“ãˆãšã€ã‚ĸヤック゚さえありぞせんでした。 全äŊ“としãĻ、Internet Explorer 5.5が少しありぞした。 äŧšį¤žãŽįĩŒå–ļé™Ŗは、æœĒæĨはイãƒŗã‚ŋãƒŧネットãĢあり、é›ģčŠąã§æŗ¨æ–‡ã™ã‚‹ãŽã¯æ‚Ēい 、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗをパãƒŧトナãƒŧãĢ配布する、ぞたはã‚Ļェブã‚ĩイトを持ãŖãĻいるīŧˆãã—ãĻã‚Ļェブã‚ĩイトを持ãŖãĻいるīŧ‰ãŽã§ã¯ãĒいかとåŧˇãæ„Ÿã˜ãĻいぞした。 į§ãŸãĄãŽã‚ĩイトīŧˆãƒ‰ãƒĄã‚¤ãƒŗīŧ‰ã¯1998嚴ぎようãĢ、Dellぎ5嚴垌ãĢį™ģéŒ˛ã•ã‚Œãžã—ãŸã€‚ そしãĻį§ãŸãĄã¯å‘¨ã‚Šã‚’čĻ‹å›žã—た。

2000åš´äģŖ初頭ãĢは、毎嚴、ERPã‚ˇã‚šãƒ†ãƒ ãŽåĸ“地ãĢ新しいåĸ“åœ°ãŽã‚ã‚‹æ–°ã—ã„æŸąãŒã„ãã¤ã‹į™ģ場しぞした。 そしãĻ、「čŗŧå…Ĩするもぎ」、「将æĨãŽã‚ˇã‚šãƒ†ãƒ ã‚’æ§‹į¯‰ã™ã‚‹ã‚‚ぎ」ãĢé–ĸする選択は非常ãĢ困é›Ŗでした。 つぞり、ベãƒŗダãƒŧロックを恐れãĻいぞしたが、一斚で、これらぎERPã‚ˇã‚šãƒ†ãƒ ãŽãƒ­ãƒŧドマップをį†č§ŖしãĻいぞせんでした。 さらãĢ、ERPã‚ˇã‚šãƒ†ãƒ ãĢはかãĒりåŽŗしいナイã‚ģãƒŗã‚šåˆļ限がありぞすが、それらは䞝į„ļとしãĻ存在しぞす。 あãĒたが思うãĒら、ãĒぜ1Cを取り、BitrixをそれãĢねじčžŧã‚“ã§ã€åŠ›ã¨ãƒĄã‚¤ãƒŗと取åŧ•ã—ぞすかīŧŸ 1CãĢは、Web APIãŽãƒ—ãƒ­ã‚­ã‚ˇã‚’č¨ąå¯ã—ãĒい明įĸēãĢ構造化されたåˆļ限がぞだありぞす。 äŊ•ã‚‰ã‹ãŽį¨ŽéĄžãŽXML APIがありぞす。つぞり、1CãƒĄã‚ŊッドをプãƒĢできぞす。 ただし、こぎ斚æŗ•ã§į†čĢ–įš„ãĢäŊŋį”¨ã§ãã‚‹ã™ãšãĻぎæŽĨįļšãĢはナイã‚ģãƒŗ゚がåŋ…čĻã§ã™ã€‚ つぞり、1Cで動äŊœã™ã‚‹ã‚ĩãƒŧビ゚をãƒĒã‚ĸãƒĢã‚ŋイムでã‚ĩイトãĢ投į¨ŋする場合、すずãĻぎナイã‚ģãƒŗã‚šã‚’čŗŧå…Ĩするåŋ…čĻãŒã‚りぞす。 1万äēēぎãƒĻãƒŧã‚ļãƒŧがいる場合、1万ぎナイã‚ģãƒŗ゚がぞだ存在する場合はčŗŧå…Ĩするåŋ…čĻãŒã‚りぞす。

åˆĨぎã‚ĸプロãƒŧチがありぞす。 これぱã‚ŋãƒŗドã‚ĸロãƒŗぎERPã‚ˇã‚šãƒ†ãƒ ã¨ã‚šã‚ŋãƒŗドã‚ĸロãƒŗぎã‚ĩイトであり、それらぎ間ãĢはäŊ•ã‚‰ã‹ãŽäē¤æ›ãŒã‚りぞす。 しかし、į§ãŸãĄã¯é›Ŗã—ã„ãƒ“ã‚¸ãƒã‚šč˛ŠåŖ˛ãƒ—ロã‚ģã‚šãŒã‚ã‚‹ã¨č¨€ã„ãžã—ãŸã€‚æŗ¨æ–‡ãŽã‚ŗã‚šãƒˆã‚’č¨ˆįŽ—するためãĢ、おそらく12個半か2個ぎテãƒŧブãƒĢを尋ねぞす。 これらは、ボãƒĒãƒĨãƒŧムデã‚Ŗã‚šã‚Ģã‚Ļãƒŗト、ピトãƒĒã‚ĢãƒĢデã‚Ŗã‚šã‚Ģã‚Ļãƒŗト、デã‚Ŗã‚šã‚Ģã‚ĻãƒŗトãƒĒ゚ト、į‰šåŽšãŽã‚¯ãƒŠã‚¤ã‚ĸãƒŗトぎåĨ‘į´„、åĨ‘į´„æĄé …ã€é€šč˛¨ã§ã‚ã‚Šã€ãƒ¨ãƒŧロッパぎãƒĒ゚トでもäŊ•ã‚‰ã‹ãŽäžĄæ ŧãƒĒã‚šãƒˆãŒæŽĄį”¨ã•ã‚ŒãĻいぞす。 こぎã‚ĸãƒĢゴãƒĒã‚ēムを書くことは、ある意å‘ŗでč‹Ļį—›ã§ã™ã€‚ ぞた、ERPã‚ˇã‚šãƒ†ãƒ ã§ã“ãŽã‚ĸãƒĢゴãƒĒã‚ēãƒ ã‚’č¨˜čŋ°ã™ã‚‹åŋ…čĻãŒã‚る場合はおうでしょうかīŧŸ 一äēēが書いた。 それからおういうわけか、PHPプログナマãƒŧãĢčĄŒãã€ã“ã“ãĢはXMLã§č¤‡čŖŊされた25個ぎテãƒŧブãƒĢがあり、こぎã‚ĸãƒĢゴãƒĒã‚ēムもįš°ã‚Ščŋ”ã™ã¨č¨€ã„ãžã™ã€‚ ã‚‚ãĄã‚ã‚“ã€åŊŧはįš°ã‚Ščŋ”しぞすが、最初ぎã‚ĸãƒĢゴãƒĒã‚ēムではエナãƒŧがį™ēį”Ÿã™ã‚‹å¯čƒŊ性があり、2į•Ēį›ŽãŽã‚ĸãƒĢゴãƒĒã‚ēムではすずãĻが間違ãŖãĻいることがわかりぞす。 つぞり、同じジョブを2å›žåŽŸčĄŒã—ãžã™ã€‚

そぎため、 ã‚ĩイト中åŋƒãŽERPを構į¯‰ã™ã‚‹ã“とãĢしぞした。つぞり、すずãĻぎデãƒŧã‚ŋ、すずãĻぎビジネ゚ロジック、およãŗナップされたすずãĻを所有する1つぎã‚ŗã‚ĸが単ãĒるイãƒŗã‚ŋãƒŧフェイ゚ãĢãĒりぞす。 åŊŧらはすでãĢいくらかぎįŸĨ性を持ãŖãĻいぞすが、ビジネ゚ブロックは原際ãĢはåĢぞれãĻいぞせん。 į´„2時間前ãĢ、CMSã‚ˇã‚šãƒ†ãƒ ã¨Bitrix、市場で尊æ•ŦされるパãƒŧトナãƒŧとįĢļ合äģ–į¤žã‚’čĻŗ察する斚æŗ•ãĢついãĻč­°čĢ–しぞした。最čŋ‘、äŧæĨ­ãŽ1つが1CぎæŦĄãŽãƒãƒŧジョãƒŗãĢ切りæ›ŋえぞした。 åŊŧらは、「最大ぎ1CパãƒŧトナãƒŧはäŊ•ã‚‰ã‹ãŽé‡‘であり、į§ãŸãĄãŽãƒ—ログナマãƒŧチãƒŧムは1嚴間働いãĻ原čŖ…ã—ãŸã€ã¨å ąå‘Šã—ã€6か月間すずãĻぎ抟čƒŊã‚’å¤ąãŖたことがわかりぞした。 ãĒんでīŧŸ åŊŧらは古いã‚ĩイトを捨ãĻ、新しいã‚ĩイトをäŊœã‚‰ãĒければãĒらãĒいからです。 したがãŖãĻ、äēˆį´„はé›ģčŠąã§čĄŒã‚ã‚Œãžã™ã€‚ さãĻ、最垌ぎčĻå› ã¯ã€ã‚ĩイト中åŋƒæ€§ãĢ加えãĻ、「ボック゚」へぎ恐怖がįĩĩが描くもぎです。 これができるとäŋĄã˜ãĻいぞした。



一čˆŦãĢ、゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖã§ãƒ“ã‚¸ãƒã‚šãƒ­ã‚¸ãƒƒã‚¯ã‚’åŽŸčĄŒã™ã‚‹ã“ã¨ã¯č‰¯ããĒã„ã¨č€ƒãˆã‚‰ã‚ŒãĻいぞす 。 į§ã‚‚æĨãšã‹ã—ãŒã‚Šåą‹ã§ã—ãŸã€‚ į§ãŸãĄã¯ã“れをäŊ•åš´ã‚‚įļšã‘ãĻきぞしたが、Romanはį§ãĢ言ãŖたようãĢ思われ、あるæŽĩ階で原際ãĢはį§ãŸãĄãŽã‚ˆã†ãĒäēēがたくさんいることが判明しぞした。 į§ã ã‘ではありぞせん。

įĨžčŠąã¯äŊ•ã§ã™ã‹īŧŸ

į•°ãĒるデãƒŧã‚ŋベãƒŧ゚間ぎį§ģæ¤æ€§ã¯å¤ąã‚ã‚Œãžã™ã€‚ はい、ありぞす。 įļ­æŒã™ã‚‹ãŽã¯é›Ŗしいです はい、Eclipseぎ゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖは、おういうわけか、そうではありぞせん。 åą•é–‹æ–šæŗ• ぞあ チãƒŧムで開į™ēã‚’čĄŒã†ã“ã¨ã¯å›°é›Ŗです。 įĸēかãĢ、pl / sqlãƒ—ãƒ­ã‚ˇãƒŧジãƒŖ、fig-fig、およãŗäģ–ぎčĒ°ã‹ãŒæ—ĸãĢそこでã‚ŗãƒŗパイãƒĢしãĻいぞす。 į†ãĢかãĒãŖãĻいるようです。 最垌ãĢ、゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖぎäŊœæˆã‚’é–‹å§‹ã—ãŸå ´åˆã€ã‚ˇãƒŖãƒŧデã‚Ŗãƒŗグはありぞせん。äŊ•ã‚‰ã‹ãŽåˆæˆã‚­ãƒŧをäŊŋį”¨ã—ãĻ分æ•Ŗ構成をおぎようãĢčĄŒã„ãžã™ã‹īŧŸ それもį†ãĢかãĒãŖãĻいるようです。

ã—ã‹ã—ã€ã“ã‚Œã¯æŠ€čĄ“įš„ãĢį•°č­°ã‚’å”ąãˆã‚‹ãŽãŒé›Ŗしいです。 å­ãŠã‚‚ãŸãĄãŽčŗĒ問ãĢį­”えぞしょう。 「デãƒŧã‚ŋベãƒŧ゚間ぎį§ģ植性、そしãĻčĒ°ãŒãã‚Œã‚’åŋ…čĻã¨ã—ぞすかīŧŸã€ããŽã‚ˆã†ãĒå¯žčŠąã‚’æƒŗ像しãĻください。 クナイã‚ĸãƒŗトīŧšã€Œæ•™ãˆãĻください、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗをåˆĨぎデãƒŧã‚ŋベãƒŧã‚šãĢčģĸ送できぞすかīŧŸã€ã¯ã„、少ãĒくとも毎æ—Ĩ、Microsoft-Oracle、Microsoft-Oracle。 そしãĻčĒ°ãŒãã‚Œã‚’åŋ…čĻã¨ã—ぞすかīŧŸ



デãƒŧã‚ŋベãƒŧ゚間ぎį§ģ植性は、čŖŊå“ã‚’č˛ŠåŖ˛ã™ã‚‹č˛ŠåŖ˛č€…ãĢとãŖãĻプナ゚ぎ抟čƒŊです。 しかし、こぎčŖŊ品を受け取ãŖãĻäŊŋį”¨ã™ã‚‹ã¨ããĢは、それãģお重čĻã§ã¯ã‚りぞせん。

æŦĄãŽãƒã‚¤ãƒŗトīŧšãƒĄãƒŗテナãƒŗ゚がé›Ŗしい。 はい、全å›ŊãĢ100ぎイãƒŗ゚トãƒŧãƒĢがある場合、ボック゚化されたčŖŊ品をįļ­æŒã™ã‚‹ã“とは困é›Ŗです。それぞれãĢ個åˆĨぎ゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖがありぞす。 įĒį„ļ、遊ãŗåŋƒãŽã‚るペãƒŗを持ãŖたクナイã‚ĸãƒŗトがäŊ•ã‹ã‚’ã‚ŗãƒŗパイãƒĢし、すぐãĢãĒんとãĒくįĨžįĩŒčŗĒãĢãĒã‚Šã€åą•é–‹æ–šæŗ•ã€ãƒ­ãƒŧãƒĢæ–šæŗ•ã‚’教えãĻくれぞすかīŧŸ ãĒんとãĒくé›Ŗしい。

įš°ã‚Ščŋ”しぞすが、こぎčŖŊ品ぎæļˆč˛ģč€…ã§ã‚ã‚‹å ´åˆã¯ã€č‡Ē分でäŊœæˆã—ãĻäŊŋį”¨ã—、イãƒŗ゚トãƒŧãƒĢ数が1万個ではãĒã„å ´åˆã€ã“ã‚Œã¯å•éĄŒã§ã¯ã‚ã‚Šãžã›ã‚“ã€‚ 大čĻæ¨ĄãĒチãƒŧムでボック゚を運čģĸするぎはé›ŖしいですかīŧŸ į§ãŸãĄã¯ä¸­å°äŧæĨ­ã§ã‚り、HighLodではãĒく、YandexではãĒく、Googleでもありぞせん。į§ãŸãĄã¯æ™Žé€šãŽį´į¨Žč€…です。 AvitoがéĢ˜č˛ čˇã§æĩŽä¸Šã—ãĻいるとき、į§ã¯Yandex、Mail.RUをįŸĨりぞせん。そぎ垌、į§ãŸãĄã¯é€šå¸¸ãŽį´į¨Žč€…であり、1Cã§ã˛ã–ãžã§įĢ‹ãŖãĻいぞす。 大きãĒチãƒŧムãĢはお金がありぞせん。そぎようãĒč§’ãŽã‚ã‚‹ãƒ—ãƒ­ã‚°ãƒŠãƒžãƒŧãĢはお金がありぞせん。 į§ãŸãĄãŽãƒãƒŧムは小さいです。 時間が掋ãŖãĻいãĻéĸį™Ŋい場合は、原際ãĢおぎようãĢč¨­č¨ˆãŠã‚ˆãŗ原čŖ…したかをčĒŦ明しぞす。

しかし、ãƒŦã‚Ŧã‚ˇãƒŧã‚ŗãƒŧドã‚ĩポãƒŧトを開始するぞでãĢã€å¤ã„ã‚ˇã‚šãƒ†ãƒ ã€ãžã•ãĢ1CãĒお、およãŗ2.5äēēãŒã‚ˇã‚šãƒ†ãƒ ãŽäŊœæˆã€æ›´æ–°ã€ãŠã‚ˆãŗį§ģčĄŒã‚’čĄŒãŖãĻいぞした。2äēēぎæœŦį‰ŠãŽãƒ—ログナマとį§ã§ã™ã€‚ つぞり、大きãĒチãƒŧムãĢé–ĸするもぎではありぞせん。

į§ãŸãĄã¯äŊ•ã‚’掋しぞしたかīŧŸ

įĨžčŠąã¯æŽ‹ãŖãĻいぞす īŧš ã‚ˇãƒŖãƒŧデã‚Ŗãƒŗグ、分æ•Ŗ構成 。 ã‚ˇãƒŖãƒŧデã‚ŖãƒŗグãĢ寞しãĻã€č­°čĢ–するぎは非常ãĢį°Ąå˜ã§ã™ã€‚įš†ã•ã‚“、SkypeãĢついãĻčĒ­ã‚“だことがありぞすかīŧŸ ゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖ、 pgbouncer 、 pl / proxyãĒおãĢすずãĻがありぞす。 デãƒŧã‚ŋベãƒŧ゚でã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗがそれč‡ĒäŊ“ãĢį›´æŽĨį™ģることができãĒい場合は、゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖをデãƒŧã‚ŋベãƒŧã‚šãĢプãƒĢすることしかできず、内部ではã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗをだぞすことができぞす。 つぞり、゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖãĒãŠã§ã‚ˇãƒŖãƒŧデã‚Ŗãƒŗã‚°ã‚’čĄŒã†ãŸã‚ãĢ、これは可čƒŊãĒことではãĒく、ãƒĒクエ゚トでåŋ…čĻãĒ場合ãĢもåŋ…čĻã§ã™ã€‚ pl / proxy 、 dblink 、 foreign data wrapperがありぞすが 、これらは存在しぞせん。 すぐãĢã‚ˇãƒŖãƒŧデã‚Ŗãƒŗã‚°ã‚’čĄŒã†åŋ…čĻãŒã‚りぞすかīŧŸ これは昨æ—ĨぎãƒŦポãƒŧトですでãĢč­°čĢ–されぞした。 一čˆŦãĢ、įžåœ¨ã€ä¸­čĻæ¨ĄãŽãƒ“ジネ゚では、YandexではãĒくMail.ruでãĒい場合、これはそれãģお重čĻã§ã¯ãĒいかもしれぞせん。

ãĒぜPostgreSQLãĒぎかīŧŸ

ぞず、 成į†Ÿã—たpl / pgsql 。 åŊŧは98åš´į›Žã€ã•ã‚‰ãĢは97åš´į›ŽãĢもį™ģ場しぞした。 åŽŗæ ŧさ、抟čƒŊ性、å­Ļ術įš„ã‚ĸプロãƒŧチ。 PostgresぎドキãƒĨãƒĄãƒŗトをčĻ‹ã‚‹ã¨ã€č‰¯ã„チãƒĨãƒŧトãƒĒã‚ĸãƒĢぎようãĢ書かれãĻいぞす。 つぞり、ドキãƒĨãƒĄãƒŗトをčĒ­ã‚€åŋ…čĻãŒã‚ã‚‹ã‚ˇã‚šãƒ†ãƒ įŽĄį†č€…を受けå…Ĩれるとき、FreeBSDぎマニãƒĨã‚ĸãƒĢとã‚ĩイトぎドキãƒĨãƒĄãƒŗトをäŊŋį”¨ã—ãĻãƒ†ã‚šãƒˆã—ãžã™ã€‚ã¤ãžã‚Šã€č‰¯ã„č‹ąčĒžãŒã‚り、すずãĻが明įĸēで1か所ãĢありぞす。 ã‚Ēãƒŧプãƒŗã‚Ŋãƒŧ゚とį„Ąæ–™ãƒŠã‚¤ã‚ģãƒŗã‚š -ã“ã“ã§č¨€ã†ã“ã¨ã¯ã‚ã‚Šãžã›ã‚“ã€‚ã•ãžã–ãžãĒãƒĒ゚クがčģŊ減されぞす。 2005åš´ãĢ1C 7を導å…Ĩした場合、多くぎč‹Ļį—›ã‚’įĩŒé¨“ã—ã€ã„ãã¤ã‹ãŽæƒ…å ąã‚ˇã‚šãƒ†ãƒ ã‚’å¤‰æ›´ã—ãĻいぞした。 デãƒŧã‚ŋベãƒŧ゚ぎ変更は、それとはäŊ•ãŽé–ĸäŋ‚もありぞせん。

そしãĻ、98åš´į›ŽãŽãŠã“かでこぎようãĒéĸį™ŊいWebã‚ĩイトができぞした。98åš´į›ŽãĢはPostgreSQLをįĢ‹ãĄä¸Šã’ãĻäŊœæĨ­ã—ぞした。 į§ã¯ãã“ãĢいãĒかãŖたぎで、1嚴半で参加しぞした。 į§ãŽæ„čĻ‹ã§ã¯ã€ãƒĒãƒĒãƒŧã‚š6.4でした。 さらãĢ、明įĸēãĒ開į™ē計į”ģ。 į§ãŸãĄã¯ãžã ã€å…Ŧ開されたã‚Ļェブã‚ĩイトぎãŋã‚’č¨ˆį”ģしãĻおり、パãƒŧトナãƒŧãĢ閉鎖されãĻいるぎではãĒく、čĒ°ã‚‚がæĨればčĒ°ã§ã‚‚į™ģéŒ˛ã§ããžã™ã€‚ 1嚴半から2嚴がT-SearchãĢãĒることはすでãĢわかãŖãĻいぞした。 チãƒŧムãĢは、į›¸äē’äŊœį”¨ãŽãŸã‚ãŽã‚ĒãƒŧプãƒŗãĒ開į™ēč€…ã€å„Ēれたã‚ŗミãƒĨニテã‚Ŗがあり、しばらくするとäŊ•ãŒčĩˇã“るかをį†č§Ŗし、įžåŽŸįš„ãĒ計į”ģをįĢ‹ãĻることができぞす。 そしãĻ、それらは原įžã—ぞす。



゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖぎæ‚Ēい éĸã¨č‰¯ã„éĸ 。 あãĒãŸã¯åˇ¨å¤§ãĒITäŧæĨ­ã§ã¯ãĒãã€ãƒœãƒƒã‚¯ã‚šã‚ˇã‚šãƒ†ãƒ ã§ã¯æē€čļŗできãĒいビジネ゚であり、į‹Ŧč‡Ēぎã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚ĩãƒŧバãƒŧがåŋ…čĻã ã¨æƒŗ像しãĻください。 古典įš„ãĒ道をたおれば、Java、CでこぎようãĒもぎを書くことができぞすが、プログナマãƒŧãĢ寞するイãƒŗã‚ģãƒŗテã‚Ŗブは非常ãĢéĢ˜ããĒければãĒりぞせん。 そしãĻ、すずãĻぎį—›ãŋはこれらぎプログナマãƒŧãĢありぞす。 ãƒĄãƒĸãƒĒぎ分配、åŋ…į„ļįš„ãĢį™ēį”Ÿã™ã‚‹ãƒĒãƒŧクãĢついãĻč€ƒãˆã‚‹åŋ…čĻãŒã‚りぞす。äŊ•ã‚‰ã‹ãŽį¨ŽéĄžãŽã‚šã‚¯ãƒĒãƒ—ãƒˆč¨€čĒžãŒåŋ…čĻã§ã™ã€‚お金、取åŧ•ã€applikuhaをį¨ŧぐビジネ゚ãĢ1æ—ĨãĢ3å›žã€Œåą•é–‹ã€ã§ããĒいためです。 ビジネ゚は外å‡ē先で順åŋœã™ã‚‹åŋ…čĻãŒã‚り、停æ­ĸすることはできぞせん。 ぞた、゚クãƒĒãƒ—ãƒˆč¨€čĒžã‚’äŊŋį”¨ã™ã‚‹ã¨ã€å¤–å‡ē先でビジネ゚ãƒĢãƒŧãƒĢを変更できぞす。 äŊ•ã‚‰ã‹ãŽãƒ—ãƒ­ãƒ•ã‚Ąã‚¤ãƒĒãƒŗグもåŋ…čĻã§ã™ã€‚ 一čˆŦįš„ãĢ、それãģお単į´”ではありぞせん。 それで、sgresはそれをすずãĻč‡Ē分č‡ĒčēĢãĢ取りぞす。

ãƒĄãƒĸãƒĒãƒĒãƒŧクãĢついãĻはぞãŖãŸãč€ƒãˆãĻã„ãžã›ã‚“ã€‚å•éĄŒã¯ã‚ã‚Šãžã›ã‚“ã§ã—ãŸã€‚ į§ãŸãĄã¯æ•°ãƒļ月間そこãĢã‚Ēãƒŗナイãƒŗでいぞす。 そしãĻ、それが非常ãĢį—›ãã€æ›´æ–°ã—たい場合、更新されぞすが、ナãƒŗã‚ŋイムはぞãŖたく停æ­ĸしぞせん。 ãƒĄãƒĸãƒĒãƒĒãƒŧクはありぞせん。 これらは非常ãĢå„Ēį§€ãĒプログナマãƒŧがį§ãŸãĄãŽãŸã‚ãĢč§Ŗæąēしたもぎです。 į§ãŸãĄã¯ã€é€šå¸¸ãŽå–åŧ•ãƒ“ジネ゚としãĻ手čŋ‘ãĢありぞす。 ゚クãƒĒãƒ—ãƒˆč¨€čĒžã¯pl / pgsqlであり、それをäŊŋį”¨ã—ãĻäŊŋį”¨ã—ぞす。 樊刊と゚ã‚ŋãƒƒãƒ•ãŽãƒã‚§ãƒƒã‚¯ã€ãƒ—ãƒ­ãƒ•ã‚Ąã‚¤ãƒĒãƒŗグ-čŠŗį´°ã¯åžŒãģお。 ã—ã‹ã—ã€å•éĄŒã‚‚č§ŖæąēされãĻいぞす。

つぞり、ダミãƒŧį”¨ãŽã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚ĩãƒŧバãƒŧを取垗しぞす。これãĢはåˆļ限がありぞせん。つぞり、手をつãĒぐORMぎようãĒもぎはありぞせん。 あるį¨‹åēĻぞで。 ã‚ˇãƒŗプãƒĢãĒ言čĒžã€ã‚¨ãƒŗトãƒĒぎäŊŽã—きい値。 ãƒ—ãƒ­ãƒ€ã‚¯ã‚ˇãƒ§ãƒŗを与えられãĒかãŖたが、おぎようãĢäŊ•ã‚’書くかをį¤ēしたが、åŊŧがãƒĒãƒŦãƒŧã‚ˇãƒ§ãƒŠãƒĢæ€č€ƒã‚’æŒãŖãĻいる場合、それは達成される、į§ãŽæ„čĻ‹ã§ã¯ã€ã‚Ēãƒ–ã‚¸ã‚§ã‚¯ãƒˆæ€č€ƒã‚ˆã‚Šã‚‚å°‘ã—æ—Šãã€åŊŧはすでãĢãƒ—ãƒ­ãƒ€ã‚¯ã‚ˇãƒ§ãƒŗãĢå…Ĩれることができる通常ぎã‚ŗãƒŧドをすでãĢį”Ÿæˆã§ããĻいるčĻ‹ãĻ。 į§ã¯åŽŸéš›ãĢ20嚴垌ãĢé€€čˇã—ã€pl / pgsqlã‚ŗãƒŧドをį†č§Ŗし、č‡Ē分č‡ĒčēĢを少ãĒく書くčƒŊ力をäŋæŒã—ãĻいぞすが、ã‚ŗãƒŧドを最遊化できぞす。 つぞり、こぎįŸĨč­˜ã¯é•ˇæœŸé–“äŋå­˜ã•ã‚Œãžã™ã€‚

ã‚ģキãƒĨãƒĒテã‚Ŗは、2000åš´äģŖ初期ãĢį§ãŸãĄãŒč€ƒãˆãĻいたもぎです。゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖをäģ‹ã—たSQLイãƒŗã‚¸ã‚§ã‚¯ã‚ˇãƒ§ãƒŗã‚’čŠ°ã‚čžŧむぎは非常ãĢ困é›Ŗです。æœŦåŊ“ãĢčļŗã‚’č¸ãŋå…Ĩれるåŋ…čĻãŒã‚り、うぞくį‹™ã†åŋ…čĻãŒã‚りぞす。 ãĒぜそれが重čĻã ãŖたぎですかīŧŸ čĒ°ã‚‚がCMSã‚ˇã‚šãƒ†ãƒ ã‚’äŊœæˆã—、1į§’ごとãĢįŠ´ãŒã„ãŖãąã„ãĢãĒりぞした。 2001嚴から2002åš´ãĢかけãĻ、CMSぎ束と10分ぎ15〜20īŧ…ぎã‚ĩイトで、äŊ•ã‚‰ã‹ãŽã‚¤ãƒŗã‚¸ã‚§ã‚¯ã‚ˇãƒ§ãƒŗを掘りčĩˇã“すことができたようです。

゚ナイドぎæŦĄãŽãƒã‚¤ãƒŗトは非常ãĢį‰Šč­°ã‚’醸す-これはイãƒŗã‚ŋãƒŧフェイ゚からぎ分é›ĸです。 数回、フロãƒŗトエãƒŗドã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗ、一部ぎ内部開į™ē、ぞたはエãƒŗドã‚Ģã‚šã‚ŋマãƒŧがã‚ĸクã‚ģ゚できãĒいã‚ĩイトを、パãƒŧトナãƒŧぎãŋぎためãĢå…Ŧ開しぞした。 ã‚ŗãƒŧドはあぞりãĒく、すぐãĢåˆĨぎテクノロジãƒŧãĢį§ģ植され、ビジネ゚ロジックをぞãŖãŸãå¤ąã†ã“ã¨ã¯ã‚ã‚Šãžã›ã‚“ã§ã—ãŸã€‚ イãƒŗã‚ŋãƒŧフェãƒŧ゚からぎ分é›ĸは、おこか善であり、おこかæ‚Ēである。 そしãĻ、ビジネ゚ロジックがパフりãƒŧマãƒŗ゚とはé–ĸäŋ‚ãĒい場合、フロãƒŗトエãƒŗドでテクノロジを変更できぞす。

2000åš´äģŖ初期ãĢæˆģりぞしょう。 そこで変更されたイãƒŗã‚ŋãƒŧフェイ゚テクノロジãƒŧぎ数はīŧŸ イãƒŗã‚ŋãƒŧネットイãƒŗãƒ•ã‚ŠãƒĄãƒŧã‚ˇãƒ§ãƒŗã‚ĩãƒŧバãƒŧ上ぎVisual Basicでプログナムするåŋ…čĻãŒã‚りぞす。 čĒ°ã‹ãŒįœŸį ã€PHP、RubyをčĻ‹ãĻ、これらすずãĻãŽč¨€č‘‰ã‹ã‚‰ãŠã“ãĢã‚‚čĄŒã‹ãĒい。 イãƒŗã‚ŋãƒŧフェイ゚テクノロジãƒŧは非常ãĢæ€Ĩ速ãĢ変化し、SQLはぞだį”ŸããĻいぞす。 į§ãŸãĄãŽã‚ˇã‚šãƒ†ãƒ ã§æœ€ã‚‚古いé–ĸ数は、あãĒたがéēį‰ŠãĢčŋ‘ãĨくãĢつれãĻ1998åš´ãĢ書かれぞした。 įĸēかãĢ、先æ—ĨčĻ‹ãžã—たが、こぎã‚ŗãƒŧドは抟čƒŊしぞす。 つぞり、12嚴前ãĢį§ãŸãĄãŒæ›¸ã„たもぎは、ぞさãĢそぎナãƒŗã‚ŋイムで動äŊœã—ぞす。いずれãĢせよ、だれもこぎã‚ĩãƒŧクãƒĢで「だれもPHPãĢいぞせんかīŧŸã€ SQLã¯é€šå¸¸ãŽč¨€čĒžã§ã™ãŒã€ãŠã“かでåˆļ限されãĻいぞす。 ãƒ“ã‚¸ãƒã‚šãƒ­ã‚¸ãƒƒã‚¯ãŽé•ˇå¯ŋå‘Ŋはäžŋ刊です。



æ‚Ēいéĸ

断į†ąæ€§ãŒč‰¯ã„ 、はい。 åŸēæœŦįš„ãĢ、å„Ēれたã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚ĩãƒŧバãƒŧがあれば、ビジネ゚ロジックがあり、ACLはイãƒŗã‚ŋãƒŧフェイ゚と密æŽĨãĢé–ĸé€ŖしãĻいぞす。 åž“æĨ­å“Ąå‘けぎ内部プログナムとWebã‚ĩイトという2つぎイãƒŗã‚ŋãƒŧフェイ゚がありぞす。 そしãĻã€ä¸Ąæ–šãŽã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗは非常ãĢį•°ãĒãŖãĻいぞす。 こぎįŸĨč­˜ã¨ã‚šã‚­ãƒĢã‚’å…ąæœ‰ã™ã‚‹ã“ã¨ã¯ã€é•ˇå¯ŋå‘Ŋぎã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚ĩãƒŧバãƒŧをå…Ĩ手するãģãŠäžĄå€¤ãŒã‚ã‚Šãžã›ã‚“ã§ã—ãŸã€‚

įĩąåˆã•ã‚ŒãŸé–‹į™ēツãƒŧãƒĢはありぞせん—はい、æœŦåŊ“です。 バãƒŧジョãƒŗįŽĄį†ã‚ˇã‚šãƒ†ãƒ ã¨ãŽæŽĨįļšãŒpgAdminãĢįĩąåˆã•ã‚ŒãĻいãĻ、ã‚ŗãƒŧドが少しåŧˇčĒŋされãĻいる場合、それはįŊŽãæ›ãˆã‚‰ã‚Œãžã—た...ここで、ぞだį—›ãŋがありぞす。 į§ãŸãĄãŽä¸­ãĢはpgAdminで働いãĻいるäēēもいれば、č‡Ē動įŊŽæ›ãŽãŸã‚ãĢems-sqlがåĨŊきãĒäēēもいぞすが、やるずきことがありぞす。

æŦĄãŽįžŦ間。 キãƒŖãƒƒã‚ˇãƒŗã‚°ãŽå•éĄŒã¯č§Ŗæąēせず、 ãƒĄãƒĸãƒĒãŽå‰˛ã‚ŠåŊ“ãĻãŽå•éĄŒã‚‚č§ŖæąēしãĒã„ã¨č¨€ã„ãžã—ãŸãŒã€ååˆ†ãĒキãƒŖãƒƒã‚ˇãƒŗグがãĒã„å ´åˆã¯é€˛æ­Šã—ãžã™ãŒã€æ–°ã—ã„æŠŊčąĄåŒ–ãƒŦイヤãƒŧがありぞす。 ã“ã‚Œã¯ã‚ãžã‚Šč‰¯ãã‚ã‚Šãžã›ã‚“ã€‚ フロãƒŗトエãƒŗドをæē€ãŸã™ã“とができãĒいビジネ゚ロジックを書いたプログナマãƒŧがいる場合、いくつかぎミドãƒĢã‚Ļェã‚ĸīŧˆãŠãã‚‰ããƒ•ãƒ­ãƒŗトエãƒŗドプログナマãƒŧがäŊ•ã‚‰ã‹ãŽJavaぞたはCã§č¨˜čŋ°ã—ぞすīŧ‰ãŒčĄ¨į¤ēされぞす。 これは原際ãĢはé›Ŗã—ã„å•éĄŒã§ã™ã€‚ キãƒŖãƒƒã‚ˇãƒĨとキãƒŖãƒƒã‚ˇãƒĨぎį„ĄåŠšåŒ–は2ã¤ãŽå•éĄŒãŽä¸­ã§æœ€ã‚‚é›Ŗしいため、į†čĢ–įš„ãĢは最も困é›Ŗです。 čĒ°ã‚‚が2į•Ēį›ŽãŽã“とをįŸĨãŖãĻいぞす-変数ãĢæ­Ŗしい名前をäģ˜ã‘るため。

場合ãĢよãŖãĻは、゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖをäŊœæˆã™ã‚‹ã¨ããĢ、時間通りãĢ停æ­ĸするぎがé›Ŗしいことがありぞす。 į§ãŸãĄãŽJavaプログナマãƒŧは、pl / perlとmimeで文字をäŊœæˆã—ãĻ送äŋĄã™ã‚‹ã‚šãƒˆã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖを書いたぎで、į§ã‚’捕ぞえぞした。 これはもうしぞせん。



中čēĢはīŧŸ

これで9.4ができぞした。 開į™ēは7.4から始ぞりぞした。 7.4を手ãĢしたäēēはいぞしたかīŧŸ ゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖをäŊœæˆã—ぞしたかīŧŸ こぎį—›ãŋを感じたäēēもいぞす。 čĻ‹ãˆãĒかãŖたäēēãĢとãŖãĻは、゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖぎæœŦ文は一重åŧ•į”¨įŦĻã§å›˛ãžã‚ŒãĻいぞした。 そしãĻ、構文はそこãĢæ­ŖįĸēãĢåŧˇčĒŋされãĻいぞせんでした、すずãĻが化č†ŋしたčŒļč‰˛ã§ã—ãŸã€‚ しかし、これãĢæąēåŋƒã—た勇æ•ĸãĒäēē々がいぞした。 į§ãŸãĄãŽãƒ“ジネ゚ロジックは3千ぎ゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖであり 、それãģお大きくはありぞせん。ã‚ŗãƒŧãƒ‰ãŽé‡ã§č¨ˆįŽ—できぞす。 最初ãĢ多くぎã‚ŗãƒŧドをäŊœæˆã—た場合、įžåœ¨ã¯éŽåŽģ5.5〜6嚴間でそれãģお多くãĒいことãĢæŗ¨æ„ã—ãĻください。 ã‚ŗãƒŧドはかãĒりパフã‚Ŗãƒŧです、ã‚ŗãƒĄãƒŗト、é–ĸ数ヘッダãƒŧがありぞす。 これはおそらく、AndreiãŒčŠąã—ãŸã‚ŗãƒŧドではありぞせん。プログナマが1æ—Ĩ80čĄŒã‚’å–åž—ã™ã‚‹ãŽã¯é›Ŗしいことです。 デãƒŧã‚ŋベãƒŧ゚は十分ãĢæ­ŖčĻåŒ–されãĻおり、700ぎテãƒŧブãƒĢがあり、それらぎ数į™žã¯åˆ†æžã§ã‚り、čŋ‘い将æĨãĢそれをåŧ•ãå‡ēしぞす。 ãŠãã‚‰ãå°‘ã—é€Ÿãæˆé•ˇã—ãĻいぞすが、ベãƒŧ゚はãģãŧ同じです。

įŸ­ã„取åŧ•ãŒå¤§åĨŊきです。 įŸ­ã„トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗはéĢ˜é€ŸãĒäŊœæĨ­ã‚’意å‘ŗã—ã€č†¨åŧĩしたイãƒŗデック゚ぎ「ã‚Ēãƒŧバãƒŧヘッド」はãĒく、ロックを垅抟しぞす。 įŸ­ã„ビジネ゚é–ĸæ•°ã‚’č¨˜čŋ°ã§ãã‚‹å ´åˆã€ãã‚Œã‚’įŸ­ãã—ぞす。 constrates 、 外部キãƒŧãĒおが大åĨŊきです。 ãĒぜãĒら ã€č†¨å¤§ãĒ量ぎエナãƒŧがãĒくãĒるからです。 昨嚴、1つぎ抟čƒŊで「厚数」ぎ違反がį™ēį”Ÿã—ぞした。これは、ãģãŧ6嚴間抟čƒŊしãĻいぞした。 それãĢ間違いがありぞしたが、それはめãŖたãĢįžã‚Œãžã›ã‚“でした。 䞋を挙げるぎはé›Ŗしいです。 しかし、åē—ä¸ģがåˇĻ手で1įŽąã€åŗ手でもう1įŽąã‚’取りå‡ēし、バãƒŧã‚ŗãƒŧド゚キãƒŖナãƒŧをéŧģでæŠŧしãĻそこãĢäŊ•ã‹ã‚’į§ģ動すると、こぎエナãƒŧがį™ēį”Ÿã—ぞす。 そしãĻåŊŧåĨŗはčĩˇããĒかãŖたīŧ åˆļį´„が抟čƒŊしたため、į§ãŸãĄã¯åŊŧåĨŗを捕ぞえぞした。 一čˆŦįš„ãĢ、åˆļį´„は遊切であり、čļŗ元でč‡Ē分を撃つことはできぞせん。

テãƒŧブãƒĢはæ­ŖčĻåŒ–されãĻã„ã‚‹ã¨č¨€ã„ãžã™ãŒã€ 非æ­ŖčĻåŒ–が大åĨŊきです。 非æ­ŖčĻåŒ–はä¸ģãĢã‚ĩイトでåŋ…čĻã§ã™ã€‚ さぞざぞãĒデãƒŧã‚ŋをかãĒりåēƒã„テãƒŧブãƒĢãĢčŠ°ã‚čžŧんでおり、ã‚ĩイトぎイãƒŗã‚ŋãƒŧフェãƒŧ゚は非常ãĢéĢ˜é€Ÿã§ã™ã€‚ 与えるぎはį°Ąå˜ã§ã€ã€Œįĩåˆã€ã¯ãģとんおありぞせん。

ORMと「ã‚ŗãƒŧドジェネãƒŦãƒŧã‚ŋãƒŧ」はåĢŒã„です。ORMč‡ĒäŊ“ぎイデã‚ĒロゎãƒŧはįŸ›į›žã—ãžã™ãŒã€č¸ãŋčžŧんだとき、ãĒぜį§ãŸãĄã‚’æˇˇäšąã•ã›ã‚‹ãŽã‹ã‚’čĒŦ明できぞす。



フロãƒŗトエãƒŗドはtomcat + nginxで 、いくつかぎčŖŊå“ã‚’åŽŸčĄŒã—ãžã™ã€‚ ã‚ĩイトãĢ加えãĻ、イãƒŗトナネットčŖŊ品īŧˆCMSとCRMはį•°ãĒりぞすīŧ‰ã€ãƒŦポãƒŧトīŧˆJasperぎ゚ã‚ŋãƒŗドã‚ĸロãƒŗã‚ĩãƒŧバãƒŧīŧ‰ã‚‚ありぞす。 Borland C Builderで開始された内部ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗがあり、įžåœ¨ã¯Embercaderoですīŧˆãģとんお開į™ēされãĻおらず、そぎようãĒイãƒŗã‚ŋãƒŧフェãƒŧ゚はぞすぞす少ãĒくãĒãŖãĻいぞすīŧ‰ã€‚ これらはすずãĻpgbouncerをäģ‹ã—ãĻ抟čƒŊしぞすが 、これãĢは個åˆĨぎ感čŦãŽč¨€č‘‰ãŒã‚りぞす。 分析、SEO、å‘ŧãŗå‡ēã—ã‚’čĄŒã†ã‚ĸã‚šã‚ŋãƒĒ゚クãĒお、ぞだ多くぎことがありぞす。 ぞた、デãƒŧã‚ŋベãƒŧã‚šãĢįĩąåˆã•ã‚ŒãĻおり、同じビジネ゚ロジックをäŊŋį”¨ã—ãĻいぞす。



おうぞ 原際、1つぎ原į¨ŧ働ã‚ĩãƒŧバãƒŧがあり、2つį›Žã¯ãƒŦプãƒĒã‚Ģであり、テ゚トį”¨ã¨åˆ†æžį”¨ãŽã‚Ēフロãƒŧドです。ã‚ĩãƒŧバãƒŧはごく晎通ぎもぎですが、ハãƒŧドã‚Ļェã‚ĸをį¯€į´„しぞせんでした。ごčĻ§ãŽã¨ãŠã‚Šã€č˛ čˇã¯ãã‚Œãģお大きくありぞせん。LAは 3よりもéĢ˜ãã‚りぞせんが、įžåœ¨ã€å¤ã€å†ŦãĢæˇąåˆģãĢãĒる可čƒŊ性がありぞす。ãĒんでīŧŸå–åŧ•äŧšį¤žã§ã¯ã€ã‚Ŋãƒŧã‚ˇãƒŖãƒĢネットワãƒŧクとはį•°ãĒり、非常ãĢ小さãĒホットデãƒŧã‚ŋã‚ģット。 10万äēēãŽéĄ§åŽĸから20個ぎã‚ĸクテã‚ŖブãĒ商品、10万äēēãŽéĄ§åŽĸからぎã‚ĸクテã‚ŖブãĒ商品がありぞす。数字を明らかãĢすることができぞすīŧšã‚ˇãƒŧã‚ēãƒŗあたり40分間ぎį˛—刊į›Šīŧˆį¨Žåŧ•å‰į´”刊į›Šīŧ‰ãĢより、こぎようãĒã‚ĩãƒŧバãƒŧをčŗŧå…Ĩできぞす。そしãĻã€ã“ã‚Œã‚‚ãžãŸã€ã‚ˇãƒŖãƒŧデã‚ŖãƒŗグãĢついãĻãŽč¨€č‘‰ãĢæˆģりぞす。

これらぎ数値は、ã‚ŗãƒŧドを控えめãĢ記čŋ°ã™ã‚‹å ´åˆã€ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗで「SELECT *」ã‚ĩãƒŧバãƒŧを減įŽ—しãĒいことを意å‘ŗã™ã‚‹ã¨č€ƒãˆãĻくださいJavaぎã‚ĩイクãƒĢで2つぎテãƒŧブãƒĢをįĩåˆã›ãšãĢ、非常ãĢ控えめãĒã‚ĸイロãƒŗで寞åŋœã§ããžã™ã€‚そしãĻ、ã‚ĒフロãƒŧドãĢはãƒŦプãƒĒã‚ĢをぞだäŊŋį”¨ã—ãĻいぞせん。つぞり、ã‚ĩイトからぎčĒ­ãŋ取りčĻæą‚はæˆĻ闘クナ゚ã‚ŋãƒŧãĢ送られぞす。

SSDはäŊŋį”¨ã—ぞせん。ここでį§ã¯čĒã‚ãĒければãĒりぞせん、そぎようãĒ間違いがありぞしたīŧšį§ãŸãĄãĢはã‚ĩãƒŧバãƒŧを非常ãĢį´°åŋƒãĢテ゚トするネットワãƒŧクエãƒŗジニã‚ĸがいぞす。そしãĻ、į§ãŸãĄã¯įžåœ¨ã€čĒ¤ãŖãĻRAID5ぎ「į”Ÿį”Ŗ中」ãĢãĒãŖãĻおり、バッテãƒĒãƒŧが切れたときãĢčĒ¤ãŖãĻ気äģ˜ããžã—た。



おうぞį§ãŸãĄã¯įŦ‘いでįĩ‚ã‚ã‚Šãžã—ãŸãŒã€ã“ã“ã§ã¯å°‘ã—é€€åąˆãĢãĒりぞす。おぎようãĢ抟čƒŊしぞすかīŧŸå‰čŋ°ã—たようãĢ、単一ぎã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŒæąšã„æ‰‹ã§į›´æŽĨデãƒŧã‚ŋベãƒŧã‚šãĢã‚ĸクã‚ģ゚するぎではãĒく、各ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗはį‹Ŧč‡ĒぎåŊšå‰˛ã§åŽŸčĄŒã•ã‚Œãžã™ã€‚すずãĻぎ゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖは、さぞざぞãĒæ–šæŗ•ã§ãƒŦイã‚ĸã‚Ļトされぞす。

ここでäŊ•ãŒčĻ‹ãˆãžã™ã‹īŧŸ WebグãƒĢãƒŧプや雇į”¨č€…ã‚°ãƒĢãƒŧプ

ãĒおぎフりãƒĢダãƒŧロãƒŧãƒĢがあり、これらãĢはãģとんお樊限がありぞせん。ぞた、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗロãƒŧãƒĢはこれらぎフりãƒĢダãƒŧロãƒŧãƒĢãĢčŠ°ã‚čžŧぞれãĻいぞす。ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗ「ã‚ĩイトぎロãƒŧãƒĢ」īŧˆã‚Ļェブīŧ‰ãŠã‚ˆãŗ一部ぎロãƒŧãƒĢ「垓æĨ­å“Ąã€īŧˆã€Œåž“æĨ­å“Ąã€ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗį”¨īŧ‰ã€‚1万ぎ゚テãƒŧãƒˆãƒĄãƒŗトã‚ŋイムã‚ĸã‚ĻトãĢæŗ¨æ„ã—ãĻください。。ãĒãœã“ã‚ŒãŒčĄŒã‚ã‚Œã‚‹ãŽã§ã™ã‹īŧŸã“れは、ã‚ĩイトが10į§’äģĨ内ãĢåŽŸčĄŒã•ã‚ŒãĒいčĻæą‚をプãƒĢすることãĢ成功した場合、そぎčĻæą‚はį ´æŖ„されることを意å‘ŗしぞす。原際、į­”えはį°Ąå˜ã§ã™ã€‚おこかãĢäŊ•ã‹ãŒčŠ°ãžãŖãĻいãĻ、ã‚ĩイトぎãƒĻãƒŧã‚ļãƒŧがそれをåŧąã‚å§‹ã‚ãĻいるが、デãƒŧã‚ŋベãƒŧ゚がそれを与えãĒい場合、それはčĒ°ãĢとãŖãĻもæ‚Ē化するだけです。怠solをč§Ŗくåŋ…čĻãŒã‚りぞす。ロãƒŧãƒĢバックされたトナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗã¯ãžã ãƒãƒƒãƒ•ã‚Ąã‚­ãƒŖãƒƒã‚ˇãƒĨをã‚Ļã‚Šãƒŧムã‚ĸップしãĻいることãĢæŗ¨æ„ã—ãĻください。ãƒĻãƒŧã‚ļãƒŧãĢäŊ•ã‚‚提䞛しãĒかãŖた場合でも、åŊŧåĨŗã¯ãã‚Œã‚’ãƒãƒƒãƒ•ã‚Ąã‚­ãƒŖãƒƒã‚ˇãƒĨãĢ配įŊŽã—ぞした。数äēēãŽåŽŸčĄŒč€…īŧˆ1万äēē、2äēēãŒåŽŸčĄŒīŧ‰ã‚’取垗すると、キãƒŖãƒƒã‚ˇãƒĨベãƒŧã‚šã‚’ã‚Ļã‚Šãƒŧムã‚ĸップし、3į•Ēį›ŽãŽčĻæą‚はæ—ĸãĢ成功しãĻいぞす。そうしãĒいと、プãƒŧãƒĢがã‚Ēãƒŧバãƒŧフロãƒŧし、Javaがį†č§Ŗし、pgbouncerãĢ十分ãĒã‚Ŋã‚ąãƒƒãƒˆãŒãĒい可čƒŊ性がありぞす。

æŦĄãĢ、゚キãƒŧムをäŊœæˆã—、各ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãĢã‚šã‚­ãƒŧムãĢ寞する樊限をäģ˜ä¸Žã—ãžã™ã€‚éĄ§åŽĸがWebã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗīŧˆWebGroupīŧ‰ã¨å†…部グãƒĢãƒŧプからぎã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽä¸Ąæ–šã‚’å…Ĩ力できることは明らかです。äēēがã‚Ēフã‚Ŗ゚内ですずãĻã‚’čĄŒã†æ–šæŗ•ã‚’įŸĨãŖãĻいる場合は、すずãĻがã‚ĩイトãĢあるようãĢしぞす。そしãĻ最垌ぎæŽĩčŊでは、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗがå…Ĩ力手順ぎã‚ŗãƒŧドとデãƒŧã‚ŋã‚šã‚­ãƒŧムをčĻ‹ã‚‹ã“とをįĻæ­ĸしãĻいぞす。

原際、これはすでãĢ多すぎぞす。čĒ°ã‹ãŒã‚ãĒたぎã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗをハッキãƒŗグした場合、åŊŧはあãĒたぎį§˜å¯†ãƒ†ãƒŧブãƒĢをčĻ‹ã‚‹ã“とができぞせん。åŊŧはデãƒŧã‚ŋをčĒ­ãŋ取ることができず、ここでも゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖãŽåå‰ã¯čĄ¨į¤ēされぞせん。



é–ĸ数はおぎようãĢčĻ‹ãˆãžã™ã‹īŧŸ in_SessionID

å…ĨåŠ›ãƒ‘ãƒŠãƒĄãƒŧã‚ŋãƒŧを持たãĒい最初ぎ単一ぎé–ĸæ•°ã¯č¨ąå¯ã§ã™ã€‚å€‹äēēが、パãƒŧトナãƒŧとしãĻį§ãŸãĄã¨å”力することではありぞせん50同じäŧšį¤žãĢæ‰€åąžã—ãĻã„ã‚‹ãŽã§ã€ãƒ‰ãƒĄã‚¤ãƒŗãƒŦジ゚トナぎようãĢį§ãŸãĄãĢとãŖãĻよりäžŋ刊です。äŧšį¤žãŽå…ĨりåŖ、1つぎログイãƒŗ、パ゚ワãƒŧドです。こぎé–ĸ数はã‚ģãƒƒã‚ˇãƒ§ãƒŗをčŋ”し、厚įžŠãĢæŗ¨æ„ã‚’払いぞす。これはã‚ģキãƒĨãƒĒテã‚Ŗ厚įžŠč€…であり、内部ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗと外部グãƒĢãƒŧプぎ2つぎグãƒĢãƒŧプをプãƒĢする樊刊がありぞす。



äģ–ぎすずãĻぎé–ĸ数ãĢはå…ĨåŠ›ãƒ‘ãƒŠãƒĄãƒŧã‚ŋãƒŧSessionIDがありぞす。これãĢより、一åēĻログイãƒŗし、ã‚ģãƒƒã‚ˇãƒ§ãƒŗをãƒĻãƒŧã‚ļãƒŧãĢé–ĸé€Ŗäģ˜ã‘、ブナã‚Ļã‚ļãƒŧCookieぞたはã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽãƒĄãƒĸãƒĒでį™ēčĄŒã—ã€äģ–ぎすずãĻぎé–ĸ数をプãƒĢできぞす。これらは常ãĢSessionå…ĨåŠ›ãƒ‘ãƒŠãƒĄãƒŧã‚ŋãƒŧã‚’æŒãĄã€čĒ°ãŒå‘ŧãŗå‡ēしãĻいるかを垊元するためãĢ内部įš„ãĢ操äŊœã•ã‚Œãžã™ã€‚つぞり、OrderCreateé–ĸ数、ã‚ĩイトぞたは内部ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗからå‘ŧãŗå‡ēされ、単一ぎãƒĻãƒŧã‚ļãƒŧã‹ã‚‰åŽŸčĄŒã•ã‚Œãžã™ã€‚ããŽå†…éƒ¨ã§ã€ã‚ˇã‚šãƒ†ãƒ ãŽãŠãŽčĸĢé¨“č€…ãŒįžæ™‚į‚šã§ãã‚Œã‚’åŧ•ãŖåŧĩãŖãĻいるぎかを判断できぞす。

ã‚ĩイトãĢある抟čƒŊãĢついãĻもčĒŦ明しぞす。OrderCreateé–ĸ数ãĢã¯ã€éĄ§åŽĸを指厚するCustomerå…ĨåŠ›ãƒ‘ãƒŠãƒĄãƒŧã‚ŋãƒŧがåŋ…čĻã§ã‚ることは明らかです。ここでそれをã‚Ģバãƒŧしぞす。CompanyIDはã‚ģãƒƒã‚ˇãƒ§ãƒŗ中ãĢ襨į¤ēされ、あるäŧšį¤žã¯åˆĨぎäŧšį¤žãŽæŗ¨æ–‡ã‚’äŊœæˆã§ããžã›ã‚“。



さらãĢ、ACLでč§Ŗæąēするåŋ…čĻãŒã‚りぞす。ここは非常ãĢį´ æ—Šãæģ‘るでしょう。ãĒぜãĒã‚‰ã€ã“ã‚Œã¯æˇąã„é ˜åŸŸã§ã‚ã‚Šã€ãŸãã•ã‚“ã‚Ģットするåŋ…čĻãŒã‚ã‚‹ã‹ã‚‰ã§ã™ã€‚å„ãƒ‰ãƒĄã‚¤ãƒŗテãƒŧブãƒĢīŧˆéĄ§åŽĸ、キãƒŖãƒŗペãƒŧãƒŗ、æŗ¨æ–‡ã€åĨ‘į´„ã€äžĄæ ŧ項į›Žīŧ‰ãĢは、ã‚ĒブジェクトぎテãƒŧブãƒĢへぎ投åŊąãŒã‚ã‚Šãžã™ã€‚ã¤ãžã‚Šã€éĄ§åŽĸぎテãƒŧブãƒĢãƒŦã‚ŗãƒŧドãĢは、object_idとobject_type = 84ぎテãƒŧブãƒĢãƒŦã‚ŗãƒŧドがありぞす。それはäŊ•ã‚’与えぞすかīŧŸãƒ—ロパテã‚Ŗ、ナイフã‚ĩイクãƒĢ、いくつかぎåˆļ限、ã‚ĩブジェクトエãƒĒã‚ĸ内ぎã‚Ēブジェクトぎこぎįĩąä¸€ã•ã‚ŒãŸčĄ¨įžãŽãƒ­ãƒƒã‚¯ã‚’掛けãĻ、こぎ上ãĢ樊刊チェックを構į¯‰ã§ããžã™ã€‚



したがãŖãĻ、æŗ¨æ–‡ã‚’é…å¸ƒã—ã€ãƒžã‚ˇãƒŗをå‡ēčˇã™ã‚‹ã‚ĩブジェクトエãƒĒã‚ĸぎ各抟čƒŊ内ãĢは、樊限をチェックする抟čƒŊがありぞす。こぎé–ĸ数をプãƒĢしãĻ、ã‚ĒブジェクトID、ã‚Ēブジェクトぎã‚ŋイプ、およãŗ「ã‚ĸã‚¯ã‚ˇãƒ§ãƒŗ」ぎã‚ŋã‚¤ãƒ—ã‚’æ¸Ąã—ãžã™ã€‚åŊŧåĨŗはč‡Ē分ぎ内側でOKã¨č¨€ã†ã‹ã€äž‹å¤–ã‚’æŠ•ã’ãžã™ã€‚äž‹å¤–ã‚’ã‚šãƒ­ãƒŧすると、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗでį°Ąå˜ãĢキãƒŖッチできぞす。ã‚ŗネクã‚ŋīŧˆJDBC、ã‚Ģã‚šã‚ŋムīŧ‰ã¯ã€ã“れらぎ䞋外を遊切ãĢキãƒŖッチし、クナイã‚ĸãƒŗトãĢæ¸Ąã—ãžã™ã€‚ãƒĻãƒŧã‚ļãƒŧはエナãƒŧを受け取り、分析できぞす。クナイã‚ĸãƒŗトでエナãƒŧをč¨ē断するåŋ…čĻã¯ãĒく、äŊ•ã‹ã‚’フã‚ŖãƒĢã‚ŋãƒĒãƒŗグするだけであれば、そぎようãĒãƒ‘ãƒŠãƒĄãƒŧã‚ŋãƒŧã‚’æ¸Ąã—ãžã™ã€‚ã‹ãĒり厄äģ‹ãĢ思えぞすが、原際ãĢは、こぎ斚æŗ•ã§æ¨ŠåˆŠã‚’įĸēčĒã™ã‚‹ã“とはプログナマぎäŊœæĨ­ãŽį›ŽãĢčĻ‹ãˆãĒい部分であり、ビジネ゚ロジックぎäŊœæˆã‚’åĻ¨ã’ることはãĒく、įĩąåˆã‚’äŊœæˆã™ã‚‹ã ã‘です。



すずãĻãŒå•éĄŒãĒくできぞしたかīŧŸ

いやこれは、į§ãŸãĄãŒå§‹ã‚ãŸįžŦé–“ã‚’æã„ãŸæ‚˛ã—ã„å†™įœŸã§ã™ã€‚写įœŸãŽä¸€į•Ē下ãĢあるぎは2009嚴ぎį§‹ã§ã™ã€‚į§ãŸãĄã¯äŊ•ã‚’垗ぞした。į§ãŸãĄãĢはã‚Ļェブã‚ĩイトがあり、į´„200äēē、300äēēãŒæˆé•ˇã—ãžã—ãŸã€‚ 5〜6ぎæŽĨįļšãŒåŒæ™‚ãĢプãƒŧãƒĢãĢį™ēčĄŒã•ã‚Œã€ã•ã‚‰ãĢ60〜70ぎæŽĨįļšãŒå†…部ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãĢよãŖãĻ占有されぞした。 60äēēぎãƒĻãƒŧã‚ļãƒŧがį¤žå†…で働いãĻいたため、ãĒぜプãƒŧãƒĢをåŋ…čĻã¨ã—たぎかをį›´æŽĨ判断しぞした。įĒį„ļį—›ãŋを感じぞした。ã‚ĩãƒŧバ16個ぎã‚ŗã‚ĸは、すãĒã‚ãĄ4ã‚Ŋã‚ąãƒƒãƒˆ4ã‚ŗã‚ĸはかãĒり2009åš´ãžã§å†ˇå´ã—ãĻ、そしãĻ我々がčĻ‹ãŸã¨ãLA 60、16ã‚ŗã‚ĸを...

į†į”ąã¯äŊ•ãŒã‚りぞすかīŧŸ

ã“ãŽå•éĄŒã¯ã‚‚ã†å­˜åœ¨ã—ãžã›ã‚“ãŒã€į§ã¯ã‚ãĒたãĢãã‚Œã‚’čŠąã•ãĒければãĒりぞせん、それは一į¨ŽãŽč‡Ēå‹•č¨“įˇ´ã§ã™ã€‚そしãĻįŦŦäēŒãĢ、あたかもč­Ļ告するかぎようãĢīŧšå¸¸ãĢ長老ãĢč€ŗを傞けぞす。 pgbouncerはåŋ…čĻãĒã„ã¨č€ƒãˆãžã—ãŸã€‚åŽŸå‰‡ã¨ã—ãĻ、すずãĻを通常おおりãĢåŽŸčĄŒã™ã‚‹å ´åˆã¯åŋ…čĻã‚ã‚Šãžã›ã‚“ã€‚ãŸã ã—ã€é€˛čĄŒä¸­ãĢ開いた各ã‚ģãƒƒã‚ˇãƒ§ãƒŗでは、ON COMMIT DELETE ROWSã‚ŋイプぎ゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖが初期化されぞした。 9.1ぞたは9.2より前ぎバãƒŧジョãƒŗでは、垌でå­Ļįŋ’した抟čƒŊがありぞした。各トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗぎ開始時ãĢ、各æŽĨįļšãŽã‚ŋイプON COMMIT DELETE ROWSぎ各一時プãƒŦãƒŧトãĢTRUNCATEが提䞛され、トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗぎįĩ‚äē†æ™‚ãĢTRUNCATEも送äŋĄã•ã‚ŒãŸã“とがわかりぞす。つぞり、100個ぎįĩåˆãŒã‚り、それぞれãĢON COMMIT DELETE ROWSã‚ŋイプぎ30個ぎ一時テãƒŧブãƒĢがある場合、3,000個ぎ一時テãƒŧブãƒĢがありぞす。そしãĻ、これらぎテãƒŧブãƒĢがおれもトナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗãĢé–ĸ与しãĻいãĒくãĻも、こぎTRUNCATEäēŒåēĻ務めた。あãĒたはäŊ•ãŒčĩˇã“ãŖãĻいたかį†č§ŖしãĻいぞす。

Postgresがã‚Ēãƒŧプãƒŗã‚Ŋãƒŧ゚であることはおぎようãĢåŊšįĢ‹ãĄãžã—たかīŧŸ

しばらくč‹Ļ労しãĻクロãƒŧãƒĢし、トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗぎ開閉をįĸēčĒã—た「プログナマãƒŧ」プログナマãƒŧがいぞす。 「通įŸĨ」をå…ĨれãĻ、こぎ切り捨ãĻãŒčĄŒã‚ã‚ŒãĻいるぎをčĻ‹ãžã—た。į§ã¯ã‚ĩイトぎã‚Ļェブã‚ĩイトãĢį™ģり、åŖŠã‚ŒãŸč‹ąčĒžã§éƒĩ送ãĢ書いãĻ、あãĒたがあれこれあれをするたãŗãĢそれを書いた。それãĢåŋœãˆãĻ、トムãƒŦãƒŧãƒŗãŒč¨€ãŖたとき、į§ã¯ã‚ˇãƒ§ãƒƒã‚¯ã‚’受けぞした。一時テãƒŧブãƒĢをクãƒĒãƒŧニãƒŗグしãĻいることは銚くことではありぞせんが、それをåĢめãĻ、į§ãŸãĄã¯ã‚ãžã‚Šč‰¯ãã‚ã‚Šãžã›ã‚“ã€‚ã€ãã—ãĻ、ブãƒĢãƒŧã‚šãƒģãƒĸムã‚ļãƒŗはč‡Ē分č‡ĒčēĢをåŧ•ãä¸Šã’ぞした。åŊŧがここãĢいるãĒら、į§ã¯ãžãŖたく期垅しãĻいぞせんでした。そしãĻåŊŧはこう書いたīŧšã€Œįš†ã•ã‚“、åŋƒé…ã—ãĒいでください。これを個äēēぎtodoãƒĒ゚トãĢåĢめãĻ、å…ŦåŧãŽtodoãƒĒ゚トãĢčŧ‰ã›ã‚ˆã†ã¨ã—ぞす。」そしãĻそれがčĩˇã“ãŖた。すぐãĢč§Ŗæąēį­–ã‚’čĻ‹ã¤ã‘ぞした。ぞず、pgbouncerをã‚ŗãƒŗパイãƒĢしぞした。そこでは7分かかりぞした。į…§æ˜ŽãŽ7分垌、こぎ[į´„Ed。īŧšã‚šãƒŠã‚¤ãƒ‰ãŽã‚°ãƒŠãƒ•ãŽåŗ側をごčĻ§ãã ã•ã„]ã€‚ã¤ãžã‚Šã€č˛ čˇãŒäŊŽä¸‹ã—、非常ãĢåŋĢ遊ãĢãĒり、æŽĨįļšãŒãƒãƒŗグしãĒくãĒりぞした。トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗぎ開始中ãĢã„ãã¤ã‹ãŽå•éĄŒãŒã‚ã‚Šã€15ミãƒĒį§’ぎわずかãĒ遅åģļがありぞしたが、それでæ—ĸãĢį”Ÿãã‚‹ã“とができぞした。į§ãŽæ„čĻ‹ã§ã¯ã€åš´æœĢぞでãĢį§ãŸãĄã¯ã“ぎ゚キãƒŧムでį”Ÿæ´ģし、äģŠã‚ˇãƒŧã‚ēãƒŗãŽéĄ§åŽĸ数を3倍ãĢåĸ—やしぞした。ブãƒĢãƒŧ゚とã‚ŗミãƒĨニテã‚ŖãĢ感čŦã—ぞす。



å•éĄŒãŒã‚ã‚Šãžã™ã€‚é–“é•ã„ãŒã‚ã‚Šã€ãã‚ŒãŒäŊ•ã§ã‚るかぎヒãƒŗトさえあるようãĒčĄŒãŒã‚ã‚Šãžã™ã€‚æŦ į‚šãŒã‚りぞすpl / pgsqlビジネ゚ロジックã‚ŗãƒŧドがそうであるようãĢ、デãƒŧã‚ŋベãƒŧ゚はåŽŗ密であり、あãĒたč‡ĒčēĢをäŋč­ˇã™ã‚‹æŠŸäŧšãŒãŸãã•ã‚“ありぞすが、ã‚ŗãƒŧドはあぞりよくテ゚トされãĻいぞせん。気ãĨかãĒいäēēは、val2とval3ぎ間ãĢã‚ŗãƒŗマがありぞせん。すずãĻぎval-sīŧˆi1、i2、i3、i4īŧ‰ãĢãƒĻãƒ‹ãƒƒãƒˆã‚’æ¸Ąã™ã¨ã€ãŠãŽįĩæžœãŒé€šįŸĨをį”Ÿæˆã™ã‚‹ã‹ã‚’推æ¸Ŧしぞす。 「通įŸĨ」ãĢは4つぎ数字がありぞす。おれīŧŸæœ€åˆã¨2į•Ēį›Žã¯singleで、3į•Ēį›Žã¨4į•Ēį›Žã¯īŧŸNULLãĢãĒりぞす。そしãĻ、それと一įˇ’ãĢ暎らす斚æŗ•ã¯īŧŸã‚ŽãƒŖップをčĻ‹ãĻã€é€˛æ­Šã¯å˜ãĢäģ–ぎすずãĻをį„ĄčĻ–しぞす。こぎことãĢついãĻはニãƒĨãƒŧã‚šãƒŦã‚ŋãƒŧãĢも書きぞしたが、čĒ°ãŒį­”えたぎかčĻšãˆãĻいぞせん、グãƒŦッグãƒģ゚ミ゚、「pl / pgsqlはSQLã‚ŗãƒŧドぎéēį”Ŗだからです。」SQLでäŊŋį”¨ã§ãã‚‹æ§‹æ–‡ã¯ã€ã“こでįŋģč¨ŗされãĻã„ãžã™ã€‚ã¯ã„ã€ã“ã‚Œã¯å•éĄŒã§ã™ãŒã€ã“ã‚Œã¯į§ãŸãĄãŒé­é‡ã—た数少ãĒã„å•éĄŒãŽä¸€ã¤ã§ã™ã€‚

æŦĄãŽå•éĄŒã¯ãƒ‰ã‚­ãƒĨãƒĄãƒŗトです。これは、į§ãŸãĄãŒįĩŒé¨“した最も重大ãĒäē‹æ•…ぎį‰ŠčĒžã§ã™ã€‚テãƒŧブãƒĢãĢDROP CASCADEを配įŊŽã™ã‚‹ã¨ã€é€šįŸĨですずãĻぎ䞋外が除外され、ã‚Ģã‚šã‚ąãƒŧドで削除されるすずãĻぎã‚Ēãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒčĄ¨į¤ēされぞす。外部キãƒŧでé–ĸé€Ŗäģ˜ã‘られた5〜6個ぎテãƒŧブãƒĢがある場合、truncateã¨č¨€ã„ãžã™ã€‚ãƒ†ãƒŧブãƒĢãĢåž“ãŖãĻ、2į•Ēį›ŽãŽãƒ†ãƒŧブãƒĢがクãƒĒã‚ĸされると回į­”されぞす。åŊŧはåŊŧåĨŗぎ垌ãĢさらãĢ4äēēãŒæŽƒé™¤ã•ã‚Œã‚‹ã¨ã¯č¨€ã‚ãĒいでしょう。そしãĻ、į§ãŸãĄã¯ãã‚ŒãĢå‡ēくわしぞした。ドキãƒĨãƒĄãƒŗテãƒŧã‚ˇãƒ§ãƒŗで、そうだãŖたとæœŦåŊ“ãĢč¨€ã‚ã‚Œãžã—ãŸãŒã€ããŽã‚ˆã†ãĒことがčĩˇã“りぞす。

æœ€åžŒãŽå•éĄŒã¯å•éĄŒã§ã¯ãĒく、むしろ銚きです。čĒ­ãŋ取り専į”¨ãŽčĻæą‚がãƒŦプãƒĒã‚Ģでã‚ĒフロãƒŧドされるようãĢ、pl / proxyをčŠĻすことãĢしぞした。pl / proxy はrefã‚Ģãƒŧã‚ŊãƒĢをã‚ĩポãƒŧトしãĻいãĒいことが判明し、refã‚Ģãƒŧã‚ŊãƒĢがæœŦåŊ“ãĢåĨŊきです。すずãĻぎデãƒŧã‚ŋベãƒŧã‚šã‚ŗネクã‚ŋはã‚Ģãƒŧã‚ŊãƒĢをã‚ĩポãƒŧトしãĻいるため、į°Ąå˜ãĢ変更でき、ãƒŦã‚ŗãƒŧドとはį•°ãĒり、抟čƒŊ間でčģĸ送できぞす。すずãĻがã‚Ģãƒŧã‚ŊãƒĢ上ãĢ構į¯‰ã•ã‚ŒãĻいるだけです。JSONがあãŖた場合、JSONで構į¯‰ã—ぞす。įžåœ¨ã€ãƒ•ãƒ­ãƒŗトエãƒŗドã‚ĩイトをJSONãĢčģĸé€ã™ã‚‹ã‹ãŠã†ã‹ã‚’æ¤œč¨Žã—ãĻいぞす。そぎ垌、pl / proxyをäģ‹ã—ãĻã‚ĸãƒŗロãƒŧドし、゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖãĢåŸēãĨいãĻすずãĻを「断į‰‡åŒ–」することは不可čƒŊであるというįĨžčŠąãĢ反čĢ–することができぞす。ã‚Ģãƒŧã‚ŊãƒĢをäŊŋį”¨ã—ãĒい場合は可čƒŊです。



į§ãŸãĄãŽäēēį”Ÿã¯ãŠã†ã§ã™ã‹īŧŸ

プログナミãƒŗグãĢついãĻã¯å°‘ã—ãŠčŠąã—ãžã™ãŒã€ãƒ—ãƒ­ã‚°ãƒŠãƒžãƒŧはæ‚Ēいですが、最遊化ãĢついãĻはįŸĨãŖãĻいぞす。すずãĻぎビジネ゚ロジックが゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖãĢある場合、čĒ°ãŒč˛Ŧäģģã‚’č˛ ã†ãšãã‹ã‚’å¸¸ãĢæŠŠæĄã§ããžã™ã€‚ãƒ‡ãƒŧã‚ŋベãƒŧã‚šãĢã‚ĸクã‚ģ゚するäēēはčĒ°ã§ã‚‚、゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖをたおりぞす。そしãĻpg_stat_user_functionsぎおかげで、それãĢé–ĸするすずãĻをįŸĨãŖãĻいぞす。

äŊ•ã—ãĻるぎīŧŸ

こぎビãƒĨãƒŧでは、pg_stat_user_functionsã‚šã‚­ãƒŧム、プãƒŦãƒŧトぎ名前、ã‚ŗãƒŧãƒĢãŽåˆč¨ˆæ•°ã€åˆč¨ˆåŽŸčĄŒæ™‚é–“ã€ã‚ĩブミãƒĒį§’ぎč§Ŗ像åēĻを持つé–ĸ数ぎ遊切ãĒåŽŸčĄŒæ™‚é–“ãŒã‚ã‚Šã€ã™ãšãĻぎ場合ãĢ十分です。



1æ—Ĩ2回、午前8時と午垌8時ãĢ、ãģとんおがãƒĸ゚クワとã‚ĩãƒŗクトペテãƒĢブãƒĢクぎクナイã‚ĸãƒŗトであるため、こぎビãƒĨãƒŧぎįĩæžœã§ã‚ã‚‹į‹Ŧč‡ĒぎプãƒŦãƒŧトをæŒŋå…Ĩしぞす。朝と夕斚ãĢã‚šãƒŠãƒƒãƒ—ã‚ˇãƒ§ãƒƒãƒˆã‚’äŋå­˜ã—ぞす。



そぎ垌、更新しぞす。ã‚ŗãƒŧãƒĢæ•°ãŽåˇŽã€åˆč¨ˆæ™‚é–“ãŽåˇŽã€ã‚ģãƒĢフã‚ŋã‚¤ãƒ ãŽåˇŽã‚’č¨ˆįŽ—しぞす。これãĢよりäŊ•ãŒåž—られぞすかīŧŸ



äŊ•ã‹ãŒé…くãĒãŖたらすぐãĢįĸēčĒã—ãžã™ã€‚å…ˆé€ąã€äģŠé€ąã‚’過åŽģと比čŧƒã™ã‚‹ã¨ã€ãŠãŽæŠŸčƒŊがよりé ģįšãĢ、ぞたはよりéĢ˜äžĄãĢå‘ŧãŗå‡ēされぞしたかīŧŸãã—ãĻ、åŊŧåĨŗをčĻ‹ã¤ã‘ぞした。それだけでãĒく、įĩļえ間ãĒいãƒĒクエ゚トがありぞす。これは、ã‚ŗãƒŗã‚ŊãƒŧãƒĢãĢ襨į¤ēされ、åŠŖ化した抟čƒŊをį¤ēしãĻいぞす。これらぎ障åŽŗはおこからæĨたぎですかīŧŸã„くつかぎį†į”ąãŒã‚りぞす。įŦŦ一ãĢ、それは可čƒŊæ€§ãŒã‚ã‚Šã€ã‚šã‚ąã‚¸ãƒĨãƒŧナ゚キãƒĨãƒŧ、åŋ˜ã‚Œã‚‰ã‚ŒãŸã‚ŗãƒŧドは、新しいバãƒŧジョãƒŗを更新し、うぞく抟čƒŊするためãĢäŊŋį”¨äģģ意ぎã‚ĸãƒĢゴãƒĒã‚ēム、およãŗいくつかぎã‚ŗマãƒŧã‚ˇãƒŖãƒĢを。すぐãĢį‚šį¯ã—ぞす。つぞり、不明ãĒčĻæą‚を懐中é›ģį¯ã§čŋŊいかけるåŋ…čĻã¯ã‚りぞせん。čĻæą‚は、おぎフロãƒŗトエãƒŗドからæĨたぎか、čĒ°ãŒå‘ŧãŗå‡ēã—ãŸãŽã‹ãŒä¸æ˜Žã§ã™ã€‚å•éĄŒãŒã™ããĢわかりぞす。

しかし、pg_stat_functionはすずãĻãŽå•éĄŒã‚’č§Ŗæąēするわけではありぞせん。ãĒんでīŧŸãžãšã€ã‚Ģãƒŧã‚ŊãƒĢ。ã‚Ģãƒŧã‚ŊãƒĢをčŋ”すé–ĸ数がある場合、1分間フェッチでき、そぎé–ĸ数は1ミãƒĒį§’é–“å‹•äŊœã—ぞした。つぞり、上部ãĢ遅いã‚Ģãƒŧã‚ŊãƒĢã¯čĄ¨į¤ēされぞせんが、多くぎã‚Ģãƒŧã‚ŊãƒĢがありぞす。

é–ĸ数ãĢã¯åˆ†å˛ãŒã‚ã‚Šãžã™ã€‚ãŸã¨ãˆã°ã€æŗ¨æ–‡ã‚’開始する抟čƒŊがありぞす。それはäēēぎ手でčĩˇå‹•ã™ã‚‹ã“とができ、樊刊ぎチェックがたくさんありぞす。ぞたはお金がæĨãĻ、イベãƒŗトを送äŋĄã—、æŗ¨æ–‡ã‚’å‡Ļį†ã—ぞした。つぞり、é–ĸæ•°ãŽåˆ†å˛ã¯ã€į•°ãĒã‚‹æĄäģļで同じé–ĸ数を非常ãĢį•°ãĒる時間ãĢå‘ŧãŗå‡ēすことができる場合です。ポイãƒŗトロãƒŧド

がありぞす。非常ãĢ重čĻãĒビジネ゚抟čƒŊがありぞす。たとえば、1äēēは1æ—Ĩ15分間そこで働いãĻいぞすが、多くはこれãĢ䞝存しãĻいぞす。そしãĻ、äēēからゆãŖãã‚Šã¨č˛ čˇãŒåĸ—加しぞすが、åŊŧは気ãĨきぞせん。これも明らかãĢãĒりぞした。もãŖã¨æˇąãčĄŒããžã™ã€‚

pg_stat_statementsをäŊŋį”¨ã—ぞす。ぞた、äŊœæĨ­ã‚ˇãƒ•ãƒˆãŽãƒ‡ãƒŧã‚ŋを最初と最垌ãĢäŋå­˜ã—、同じことを分析しぞす。しかし、それはより多くを与えぞす。



これはpg_stat_statementsへぎãƒĒクエ゚トがおぎようãĢčĻ‹ãˆã‚‹ã‹ã§ã™ã€‚æŗ¨į›Žã™ãšãã¯ã€ã‚šãƒˆã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖぎã‚ĸトミックãƒĒクエ゚トがpg_stat_statementsãĢ到達することです。そこãĢåŧãŒã‚りぞすīŧšãã“ãĢデãƒŧã‚ŋをæŠŊå‡ēし、ã‚ģミã‚ŗロãƒŗã€æ”ščĄŒã€ã‚ŗãƒĄãƒŗト、デãƒŧã‚ŋを更新しぞす。これらぎ2ã¤ãŽãƒ•ãƒŠã‚°ãƒĄãƒŗトは、ã‚ŗãƒĄãƒŗトと「ãƒĻãƒŧã‚ļãƒŧフりãƒŧマット」ãĒお、非常ãĢäžŋ刊ãĒpg_stat_statementsãĢåˆ†éĄžã•ã‚Œãžã™ã€‚



外čĻŗはæŦĄãŽã¨ãŠã‚Šã§ã™ã€‚一į•Ē上は一čˆŦįš„ãĒãƒĒ゚トぎようで、一į•Ēä¸‹ã¯čˆˆå‘ŗぎある断į‰‡ã§ã™ã€‚参į…§ã‚Ģãƒŧã‚ŊãƒĢをå‘ŧãŗå‡ēしãĻčŋ”すé–ĸ数内ãĢ1つぎã‚ĸトミックåŧãŒã‚り、こぎ「ビãƒĨãƒŧ」ãĢ3回å…Ĩりぞす。é–ĸ数č‡ĒäŊ“がキãƒŖッチされ、åŗåē§ãĢ抟čƒŊし、地下2ミãƒĒį§’ぎおこかãĢ配įŊŽã•ã‚Œãžã™ã€‚ SELECTã‚ĢテゴãƒĒヒットぎã‚ĸトミッククエãƒĒとã‚Ģãƒŧã‚ŊãƒĢヒットぎフェッチ。それらはį°Ąå˜ãĢ識åˆĨできぞす。つぞり、ã‚Ģãƒŧã‚ŊãƒĢãĢå•éĄŒãŒã‚ã‚‹å ´åˆã€é–ĸé€Ŗäģ˜ã‘られãĻいる抟čƒŊがわからãĒいため、ãģãŧ時間įš„ãĢä¸€č‡´ã—ã€å‘ŧãŗå‡ēし数がæ­ŖįĸēãĢä¸€č‡´ã™ã‚‹ã‚ĸトミッククエãƒĒとã‚Ģãƒŧã‚ŊãƒĢをč‡Ē動įš„ãĢ分析し、それらを比čŧƒã§ããžã™ã€‚åŊšãĢįĢ‹ã¤ãƒˆãƒĒック。

2行į›Žã§ã¯ã€åå‰äģ˜ãã‚Ģãƒŧã‚ŊãƒĢをフェッチしぞす。フロãƒŗトエãƒŗドが゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖをå‘ŧãŗå‡ēすときãĢã€ã“ãŽãƒ—ãƒ­ã‚ˇãƒŧジãƒŖぎ名前でã‚Ģãƒŧã‚ŊãƒĢãĢ名前をäģ˜ã‘ã‚‹æ–šæŗ•ã‚’įŸĨãŖãĻいれば、ログぎおこãĢでもį›´æŽĨ襨į¤ēされぞす。ぞた、äžŋ刊ãĒトãƒĒック。pg_stat_statementsãĢ



感čŦã—ぞすæŊœåœ¨įš„ãĢæ‚Ēい場所をčĻ‹ã¤ã‘るぎはį°Ąå˜ã§ã™ã€‚おれīŧŸįŦŦ一ãĢ、更新は常ãĢéĢ˜äžĄã§ã‚り、įŦŦäēŒãĢ、į§ãŒč¨€ãŖたようãĢ、あãĒたぎã‚ŗãƒĄãƒŗトさえもpg_stat_statementsãĢå…Ĩる。したがãŖãĻ、čĒ°ã‹ãŒãƒĒクエ゚トãĢ寞しãĻ「TODO」ぞたは「ここでäŊ•ã‹ãŒãŠã‹ã—い」と書いた場合、pg_stat_statementsãĢčĄŒãã€į–‘問ぎあるã‚ŗãƒĄãƒŗトをåĢむクエãƒĒがある場合は最初ãĢæŽĸしぞす。そしãĻ、あãĒたはすぐãĢそれらをčĻ‹ã¤ã‘ぞす。とãĻも速いです。

そしãĻäģŠã€į—›ãŋãĢついãĻ少し。 2枚į›ŽãžãŸã¯3枚į›ŽãŽã‚šãƒŠã‚¤ãƒ‰ã‚’čĻ‹ã‚‹ã“とができたį§ãŸãĄãŽãƒ•ãƒ­ãƒŗトエãƒŗドã‚ĩイトはLiferayãĢåŸēãĨいãĻいぞす。そこからãģとんおすずãĻをéŖ˛ãŋぞしたが、äŊ•ã‹ãŒæŽ‹ãŖãĻいぞした。そしãĻ、äŊ•ã‹ãŒäŧ‘æ­ĸįŠļ態ですčĒ°ãŒåŊŧがテãƒŧブãƒĢãĢ書いたもぎをエミãƒĨãƒŦãƒŧトするåŋ…čĻãŒã‚りぞす。はい、こぎLiferayはãƒĻãƒŧã‚ļãƒŧプãƒŦãƒŧトをäŊœæˆã—ぞす。原際、åŊŧはキãƒŖãƒƒã‚ˇãƒĨしぞす。つぞり、åŊŧはそれぎãģとんおをキãƒŖãƒƒã‚ˇãƒĨしぞすが、į§ãŸãĄãŒåž—た小さãĒもぎはここãĢありぞす。 Liferayを厌全ãĢäŧ‘æ­ĸįŠļ態でéŖ˛ã‚€ã¨ã€åŽŸéš›ãĢは20倍äģĨ上がåŋ˜å´ãŽãŠã“かãĢčĄŒããžã™ã€‚ HibernateãƒĒã‚¯ã‚¨ã‚šãƒˆã‚’čĄ¨į¤ēしたかãŖたぎですが、それが合わãĒいことãĢ気äģ˜ããžã—た。これは寞å‡Ļがé›Ŗしいです。

しかし、äēē気ぎあるビジネ゚ã‚Ŋフトã‚Ļェã‚ĸぎã‚ĩãƒ—ãƒŠã‚¤ãƒ¤ã§å•éĄŒãŒį™ēį”Ÿã—た場合。čĢ‹č˛ æĨ­č€…が導å…Ĩしたã‚ĩãƒŧビ゚を提䞛しãĒã„ã‚ˇã‚šãƒ†ãƒ ãŒæ§‹į¯‰ã•ã‚ŒãĻいぞす。åŊŧåĨŗはMS SQLã‚ĩãƒŧバãƒŧという䞋外を投げぞした64キロバイトをčļ…えるčĻæą‚ã‚’åŽŸčĄŒã§ããžã›ã‚“ã€‚ 64ビットぎエãƒŗã‚ŋãƒŧプナイã‚ēバãƒŧジョãƒŗをčŗŧå…Ĩするåŋ…čĻãŒã‚りぞす。一čˆŦãĢ、MS SQL Serverぎåˆļ限は、65536バイトぎčĻæą‚ã‚’åŽŸčĄŒã§ããĒいことであり、これをã‚ĩポãƒŧトするバãƒŧジョãƒŗはありぞせん。ã‚ģãƒŧãƒĢ゚マネãƒŧジãƒŖãƒŧ、ヘãƒĢプデ゚クマネãƒŧジãƒŖãƒŧ、ビジネ゚ロジックを書いた垌čŧŠã€ãã—ãĻ10ãƒĄãƒŧトãƒĢぎおこかãĢ1Cã‚ŗãƒŧドジェネãƒŦãƒŧã‚ŋãƒŧを書いたäēēがいるというäē‹åŽŸãŽãŸã‚ãĢ、į§ãŸãĄã¯åŊŧらãĢį›´æŽĨé›ģčŠąã—ãžã™ã€‚ã“ã‚ŒãŒæ­Ŗå¸¸ã§ã‚ã‚‹ã¨č€ƒãˆãĻください。

ãĒぜこれが重čĻãĒぎでしょうかīŧŸį§ãŸãĄã¯å°ã•ãĒäŧšį¤žã§ã™ã€‚小さãĒITã‚šã‚ŋッフがいぞす。多くぎäēē々がこれらぎãƒŦイヤãƒŧぎč˛Ŧäģģã‚’å…ąæœ‰ã™ã‚‹åŋ…čĻãŒã‚るため、こぎようãĒ重いテクノロジãƒŧをčŗŧå…ĨするäŊ™čŖ•ã¯ã‚りぞせん。これãĢ到達するぎはé›Ŗしいです。ここでぎ



最遊化

は非常ãĢįŸ­ãã€ãŠãã‚‰ãčĒ°ã‚‚がįŸĨãŖãĻいぞす。我々は持ãŖãĻいるįĩąč¨ˆæ›´æ–°ã€æŒŋå…Ĩ、除įŽ— テãƒŧブãƒĢでは、æ­ģんだ「ã‚ŋプãƒĢ」、イãƒŗデック゚ぎæ˛ģį™‚ãĢé–ĸするįĩąč¨ˆã‚’。これはおぎようãĢäŊŋį”¨ã§ããžã™ã‹īŧŸ とãĻもį°Ąå˜ã§ã™ã€‚10ãƒã‚¸ã‚ˇãƒ§ãƒŗぎæŗ¨æ–‡ãŽå„ビジネ゚トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗãĢついãĻã€å„ãƒã‚¸ã‚ˇãƒ§ãƒŗを1回更新するåŋ…čĻãŒã‚ると思われる場合は、トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗを開始し、ã‚Ģã‚Ļãƒŗã‚ŋãƒŧを削除し、トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗを厌äē†ã—、ã‚Ģã‚Ļãƒŗã‚ŋãƒŧを削除しãĻ、10回å‡Ļį†ã•ã‚ŒãŸã“とをįĸēčĒã—ぞす。場合ãĢよãŖãĻは、各ã‚ĸイテムがn階䚗回数更新されることが判明しぞす。nはã‚Ēãƒŧダãƒŧ内ぎã‚ĸイテムぎ数です。そしãĻ、あãĒたはį†čĢ–が原čˇĩと寞įĢ‹ã—ãĻいることをį†č§ŖしãĻいぞす。ã‚ĸãƒĢゴãƒĒã‚ēムをæŽĸしãĻいãĻ、それをčĻ‹ã¤ã‘ãĻいぞす。これらはã‚ĩイクãƒĢです。ã‚ĩイクãƒĢは常ãĢį—›ãŋぎ原因です。これらはåŋ˜ã‚Œã‚‰ã‚ŒãŸæĄäģļです。つぞり、デãƒŧã‚ŋをæ­Ŗしい値で更新しぞすが、それäģĨ上åŋ…čĻãĒい場合は「停æ­ĸã€ã¨č¨€ã„ã€ãã‚Œã§ã‚‚æ›´æ–°ã—ãžã™ã€‚

時々、これはDISTINCTã‚’čĄŒã†ãŽã‚’åŋ˜ã‚ŒãŸã‚ĩブクエãƒĒ、つぞりWHEREãƒĒクエ゚トです...ID INであり、多くぎ一意でãĒい値をčŋ”ã™ãŸã‚ã€å•éĄŒãŒį™ēį”Ÿã—ぞす。そしãĻã€ã‚‚ãĄã‚ã‚“ã€åŋ˜ã‚Œã‚‰ã‚ŒãŸã‚¤ãƒŗデック゚。



そしãĻ最垌ãĢ、į§ã¯æ™‚々ぞれãĒビジネ゚抟čƒŊãŒã‚ã‚‹ã¨č¨€ã„ãžã—ãŸã€äēēが1æ—ĨãĢ1回、渋々とåŊŧらãĢčŋ‘ãĨき、抟čƒŊがよりゆãŖくりとゆãŖくり動äŊœã™ã‚‹ã¨ãã€‚č¨˜éŒ˛ã¯æŦĄãŽã¨ãŠã‚Šã§ã—たīŧš15分ぎäģ•äē‹ã‹ã‚‰ãŽäēēは2時間ぎäģ•äē‹ãĢ変わりぞした。そしãĻ、čĒ°ã‚‚åŊŧぎãƒĒãƒŧダãƒŧさえįŸĨらãĒかãŖた。åļį„ļčĻ‹ã¤ã‘たとき、ただぎ喜ãŗã¨ã‚ˇãƒŖãƒŗパãƒŗãŽã‚šãƒ—ãƒŠãƒƒã‚ˇãƒĨがありぞした。で、į§ãŸãĄã¯ã—ãĒければãĒらãĒいことを常ãĢログ゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖæŽĸる、トップで抟čƒŊpg_stat_statementsビãƒĨãƒŧでは、キãƒŖッチį•°å¸¸ã‚’pg_stat_functionsã‚ŗãƒŧドをクãƒĒãƒŧãƒŗã‚ĸップするだけです。ブãƒĢックãƒĒãƒŗブãƒĒッジをペイãƒŗトするようãĒもぎです。トップ5を最遊化すると、さらãĢ多くぎ新しいブãƒĒãƒƒã‚¸ãŒčĄ¨į¤ēされ、円を描くようãĢ歊きぞす。しかし、これはãƒĻãƒŧã‚ļãƒŧぎåŋĢ遊さぎéĩです。

最įĩ‚įš„ãĢ、一時テãƒŧブãƒĢを削除しぞした。一時テãƒŧブãƒĢは、2009åš´ãĢį—›ãŋをåŧ•ãčĩˇã“しぞした。トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗごとãĢ切り捨ãĻるåŋ…čĻãŒã‚ãŖたためです。ãƒŦã‚Ŧã‚ˇãƒŧ ã‚ŗãƒŧド、ã‚Ļã‚Ŗãƒŗドã‚Ļé–ĸ数、再帰クエãƒĒぎ削除ãĢ成功しぞした。これはあるį¨ŽãŽåĨ‡čˇĄã§ã™ã€‚ãģとんおぎ場合、こぎ抟čƒŊãĢついãĻ記čŋ°ã—たすずãĻぎã‚ŗãƒŧドは、よりéĢ˜é€ŸãĢイãƒŗ゚トãƒŧãƒĢされ、čĒ­ãŋやすくãĒりぞす。

最垌ãĢ、äŊ•ã‚‰ã‹ãŽč¤‡é›‘ãĒ場所がある場合、おぎようãĢé–ĸ数をデバッグしぞすかīŧšã‚¯ãƒ­ãƒƒã‚¯ã‚ŋイム゚ã‚ŋãƒŗプ前ãĢ通įŸĨし、垌ãĢ通įŸĨし、時間をčĻ‹ã‚‹ã“ã¨ãŒã§ããžã™ã€ãƒ—ãƒ­ãƒ•ã‚Ąã‚¤ãƒĢすることができぞす。



おぎようãĢã‚ŗãƒŧドをįŽĄį†ã—ぞすかīŧŸ

先ãģãŠč¨€ãŖたようãĢ、įžåœ¨3,000ぎé–ĸ数がありぞす。昨嚴、į§ãŸãĄã¯éžå¸¸ãĢ大きãĒæ›´æ–°ã‚’čĄŒã„ã€ãģとんおぎビジネ゚ロジックを攚善し、ã‚ĩイトį”¨ãĢ更新しぞした。čĒ°ã‚‚がæē€čļŗしãĻいぞした。į§ãŸãĄã¯å¤§é‡ãŽã‚ŗãƒŧドを投げぞしたīŧšåŖŠã‚ŒãŸã‚¤ãƒŗã‚ŋãƒŧフェãƒŧ゚、åŖŠã‚ŒãŸæŠŸčƒŊ。それを取り除く斚æŗ•ã¯īŧŸ EclipseぞたはIDE IDEAãŽãŠã“ã‹ã§ã€ã‚¯ãƒŠã‚šã€ãƒĄã‚Ŋッド、これらすずãĻをãƒĒãƒŗクできぞすが、こぎã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗが原際ãĢäŊŋį”¨ã•ã‚ŒãĻいるかおうかはわかりぞせん。ビジネ゚ロジックがすずãĻé–ĸæ•°ã§č¨˜čŋ°ã•ã‚ŒãĻいる場合、pg_stat_user_functionをäŊŋį”¨ã™ã‚‹ã¨ã€é–ĸ数がå‘ŧãŗå‡ēされãĻいるかおうかがわかりぞす。

3か月間働いãĻいる場合は、įĩąč¨ˆã‚’čĻ‹ãĻください。ぞãŖたくå‘ŧãŗå‡ēされãĒいé–ĸ数がčĻ‹ã¤ã‹ã‚Šãžã™ã€‚そしãĻį§é”はこうしãĻ千嚴ãĢわたãŖãĻãģãŧ千ぎæ­ģんだ抟čƒŊã‚’č“„įŠã—た。クエãƒĒぎ劊けを借りãĻ、1分īŧˆãŠãã‚‰ã2時間īŧ‰č€ƒãˆãšãĢ、これらぎé–ĸæ•°ã¨å›žčˇ¯ãŽåå‰ã‚’å—ã‘å–ã‚Šã€ãã‚Œã‚‰ã‚’ " to-delete " ã‚šã‚­ãƒŧムãĢčģĸ送する゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖをäŊœæˆã—ぞした。銚いたことãĢ、2é€ąé–“ã§æŠŸčƒŊがæŦ čŊしãĻいる䞋外は2つしかありぞせんでした。 1つぎ抟čƒŊはいくつかぎåˆļ限を切りæ›ŋえ、それは「é›ĸ劚」とå‘ŧばれ、もう1つはį§ãŽå€‹äēēįš„ãĒ抟čƒŊでした。į§ã¯é•ˇã„é–“å…ŦåŧãŽãƒ‹ãƒŧã‚ēからそれをå‘ŧãŗå‡ēしぞせんでした。

ã¤ãžã‚Šã€ã“ã‚Œã¯č‰¯ã„æŠŸäŧšã§ã‚り、おそらくäģ–ぎ場合ãĢは刊į”¨ã§ããžã›ã‚“。 1つぎįĩąåˆį’°åĸƒã§ã‚ŗãƒŧãƒ‰ã‚’ãƒ—ãƒ­ãƒ•ã‚Ąã‚¤ãƒĒãƒŗグおよãŗ開į™ēできるだけでãĒく、同じį’°åĸƒã§åŧˇåŠ›ãĒã‚ŗãƒŧãƒ‰ã‚’å†č¨­č¨ˆã§ããžã™ã€‚ UIDを取垗する前ãĢ、SessionIDデãƒŧã‚ŋ型を再įˇ¨é›†ã—たら、int8をäŊŋį”¨ã—ぞした。 Liferayとぎäē’換性ぎためãĢ、イãƒŗã‚ŋãƒŧネットãĢå‡ēかけることãĢしたときは、UIDãĢ切りæ›ŋえるåŋ…čĻãŒã‚りぞした。 pg_procを分析するいくつかぎ゚クãƒĒプトをäŊŋį”¨ã—ãĻ、DROP FUNCTION、CREATE FUNCTION、およãŗ変更されたデãƒŧã‚ŋåž‹ã‚’åŽŸčĄŒã™ã‚‹å¤§čĻæ¨ĄãĒSQL゚クãƒĒプトをäŊœæˆã—ぞした。これらはすずãĻ、1トナãƒŗã‚ļã‚¯ã‚ˇãƒ§ãƒŗで夜間8åˆ†ã§åŽŸčĄŒã•ã‚Œãžã—ãŸã€‚ 2500ぎ゚トã‚ĸãƒ‰ãƒ—ãƒ­ã‚ˇãƒŧジãƒŖが変更されぞした。



希望と期垅 JSONとJSONBãĢ

大きãĒ期垅。īŧšå…ˆãģãŠč¨€ãŖたようãĢ、これはã‚Ģãƒŧã‚ŊãƒĢãŽå•éĄŒã§ã™ã€‚ã“ã‚Œã‚’å–ã‚Šé™¤ã„ãĻ、PL / Proxyを銀ぎ大įšŋぎ上ãĢįŊŽããžã™ã€‚įŦŦäēŒãĢ、いくつかぎイãƒŗã‚ŋãƒŧフェãƒŧã‚šã‚’AndroidãĢčģĸ送するという期垅があり、JSONは非常ãĢäžŋ刊です。ã‚ĩイトぎあらゆるį¨ŽéĄžãŽãƒ•ã‚ŖãƒĢã‚ŋãƒŧとACLをJSONãĢįĩžã‚Ščžŧんで、非æ­ŖčĻåŒ–することは可čƒŊです。イãƒŗデック゚ãĢはおんãĒį´ æ™´ã‚‰ã—ã„ã“ã¨ãŒã‚ã‚‹ã‹ã‚’č€ƒæ…Žã—ãĻ、非常ãĢéĢ˜é€ŸãĢ動äŊœã™ã‚‹ã¯ãšã§ã™ã€‚BRINイãƒŗデック゚ãĢ非常ãĢæē€čļŗしãĻいぞす、分析があるため、åˆĨぎデãƒŧã‚ŋベãƒŧã‚šãĢčģĸ送されぞす。そしãĻ、BDRとčĢ–į†č¤‡čŖŊ-ãĒぜそれがåŋ…čĻãĒぎかぞだわかりぞせんが、原際ãĢčŠĻしãĻãŋãŸã„ã¨æ€ã„ãžã™ã€‚ãžãšã€åˆ†æžãŽå•éĄŒã‚’č§Ŗæąēしぞす。つぞり、一部ぎデãƒŧã‚ŋをåˆĨぎデãƒŧã‚ŋベãƒŧã‚šãĢ選択įš„ãĢãƒ—ãƒƒã‚ˇãƒĨできぞす。æŦĄãĢ、分æ•Ŗã‚ˇã‚šãƒ†ãƒ īŧˆAvitoãĒおīŧ‰ã‚’äŊœæˆã™ã‚‹ã“ともできぞす。

さãĻ、Avito、Yandex、Zalando、Pivo​​talãĒおぎ小čĻæ¨Ąã ãŒæˆåŠŸã—ãĻいるäŧæĨ­ã¨æœ€å¤§ãŽå›Ŋ際įš„ãĒäŧæĨ­ãŽä¸Ąæ–šãŽãƒĒãƒŧダãƒŧã‹ã‚‰ãŽæœ€ã‚‚čˆˆå‘ŗæˇąã„ã‚ĩクã‚ģ゚゚トãƒŧãƒĒãƒŧぎãŋをæē–備しįļšã‘ãĻいぞす。ãƒŦポãƒŧトぎį”ŗčĢ‹ã¯ã€äŧšč­°Webã‚ĩイトでįĸēčĒã§ãã€æœ€ã‚‚é–ĸé€Ŗ性ぎあるトピックãĢ投įĨ¨ã§ããžã™ã€‚

Source: https://habr.com/ru/post/J326758/


All Articles