3. ááá£á á²á áá ášááá á áá©áá¶áœ
á¥áá° ášá³áá áá á«á ááá á ášá°áá«á© áá© áá³á®áœ á ááµ. ášááá£á áá áµáá°á« á°áá£á«á áá á«áážáá á¥ááµá¥á¢
3.1 áá© áá³á 1. á ááá«áᜠášáááµ á ááµ á áá
ááá£ááµ á¥áá° áµááµá á¥á» á³ááá á¥áá° áá°á á á°áááá®áœá áá áá áá»ááᢠááá³áᣠá¥áá° áá£áªá¡-
Set ^counter = 0 ; ÑÑÑаМПвка ÑÑÑÑÑОка
Set id=$Increment(^counter) ; аÑПЌаÑМПе ОМкÑеЌеМÑОÑПваМОе
á áá ááá³, ááá á ááá, ášáµááá á á°ášááª, á ááá«ááœá ááá«ážá ááœáá. á áá± áááá á á«áá£áá¢
3.2 áá© áá³á 2. á ááµ á«á á¥á á¥á á ááá«ááœ
á á á ááá áá ááá²á ááá-á¥áŽáµ áá°ášáµ ááᢠá¥á á¥á ášá¥áŽá¶áœá á¥áá° á¥áŽáµ á«áµááá¥á ášáá ááá áá á á£á á°á« ášáá á ášáŽá á¥áááááá¢
á á ááá áá á°ášá áá á«ááá á°áá ášá¥ ááá°áá á ášáµááœá á¥á«á³áœáá ášá ááµ á¥áŽá¶áœ áááášáµ á¥á ášáá«á áááá ááá á áá áá áá° á ááá ááá á¥ááµááá£áá. á áá«áá¡á áµ áá áá¥ášááááá á¥áá°áá áá° á áá¶áœ ááášááá á¥áá²á»á ášáášá°ááµá áá áá ááœáá:
- áá³á áááááœ.
Set ^t(id1) = "col11/col21/col31" Set ^t(id2) = "col12/col22/col32"
- á¥á«áá³áá± ááµá á áµááµá ášá°áá°á á£ááµ á¥ááµ ášáááá áµ ááµá á¥á áµá¢ á á°ááá ášááᥠáá³áᜠááµá¥ á¥áá°áá°ášáá.
- áá© á°áá£á $LB (á áážáá« ááµá¥ áááá)ᣠáá
á ášá¥áŽá¶áœá áá¥ášááá ááá¥á«áá¢
Set ^t(id1) = $LB("col11", "col21", "col31") Set ^t(id2) = $LB("col12", "col22", "col32")
ášáááááᣠá áááááµ á³á³á€á ááµá¥ ášááá°á á°ášá á¢ááŽáá¶áœ áá á°áá³á³á ášáá ááá áááµášá ááá£áá áá áá ášá£áµ á áá°ááᢠá¥áá²á á«á ááá á®áœá á¢ááŽááµ ááá£á á¥áá á¥áá¥á«á¢ á¢ááŽááµ ááá£á ášááá ááá á ááá áá ááá á á«á á«ááááµá á áá¥ááµ ááááá ášáášá³ áá ááᢠá¥á±á áááááµ á¥á ááá áá, á°ášá᪠á®áµ áá»á á«áµááááá³á.
á ááááªá«á á ááµ áá á¢ááŽááµ ááá£á á¥ááá áá¢
Set ^i("col11", id1) = 1
Set ^i("col12", id2) = 1
á áá, á ááááªá«á á ááµ ááµá¥ áášáá á áá¥ááµ ááááá, ááá á ááááá áááášáµ á áá¥á ^i á¥á ášááááªá«á á ááµ ášááááá á¥áŽáµ áá ášáááá± áá ááááœá (áá³ááá«) á«ááá¢
á¥áŽáµ á áá«áµáá¡á áµ áá, ááá«áµááááµ ááµá®áœ ááá±áá á¥áŽáµ á¥á áášá á ááá áá²á«áá ááá á á¥ááœááá. á¥á áá³ááááµ, áááá á áá¥ááµ ááµá¥ á¥áá áááá.
TSTART
Set ^t(id1) = $LB("col11", "col21", "col31")
Set ^i("col11", id1) = 1
TCOMMIT
á á€á áá á¥ááŽáµ á¥áá°áá°ášá áááá®áœ
ášáµááœá ášááµáá£áµ / ášáááá / ášáá°ášá á°áá£á«áµ á COS / M ááµá¥ ášá°áá á¥á ášá°á ááá© á¥áá°áá á«á á°áá ášáŠáœ á¥áá° á£á áá ášáášá áá¶áœ (ááá á áá¥ááµ) á áá¥ááµ áá°á«áá¢áá áá áááá« TSTART á¥á TCOMMIT áµááááœá (áá¥áá¶áœá) áá ááá ášáá® á á áá INSERT á¥á SELECT áá° á ááµ á£á áááµ-á ááµ á áá ášá¥ á áá°á ááµá¬áááá¢
á°ášá᪠ááµá¥áµá¥ ááá³ááœá á á ááµ áá áá³ášá» á¥á á áµáá© áá¥áá¶áœ á ááášáá©áá¢
áá¥áá¶áœá á³áá ááᣠášááµáá¢á« áá á 778 áá£ááœ/áŽá®ááµ á á ááµ ááá®á á¥áŽá¶áœ áá áá¢
áš 300 ááá®á áááᜠáá - 422 ááµáá¢á«áᜠ/ á°ášááµá¢
áá¥áá¶áœá á²á áá - 572 ááµáá¢á« / á°ášááµ á 082M ááµáá¢á«ááœ. ááá ááááᜠášá°ášááááµ ášá°ááá áš á€á á®áµ ááá¢
áááµ áµá«áá áá°á á á¥áá á€áµá€áµá² á áá°ááᢠRAID5 ášááᶠá»á ááᢠPhenom II 1100T áá®á°á°á.
áš SQL á³á³á€á á á°áá³á³á ááááµ áááášáᣠá loop ááµá¥ ááµáá£áµá ášáá«ášááá ášá°ášááž á á°á«á ááá á«áµááááá³áᢠMySQL 5.5 (InnoDB áášáá») á ááááá áµ ááᣠáá
á áᎠá°á á
á á á°ášááµ áš11áºá
ášááá áá¡ áá¥á®áœ á°ášá°áá¢
á áá, á á ááá áá á°ášá áá á«á ášá ášáŽááᜠá á°áá£á á ášá°ááá
ášááᥠáá³áᜠášá áá ááµá¥áµá¥ áááµáá. áµááá
á á ááá áá á°ášá áá á«á ášá¢áá±áµáµáª á³á³á€áᜠáµá«á á á°áá ášá¥ áášá ááááá áš SQL áá³ášá» á áážáá¢
á á á ááá ášáášáá ááá áá¥á á¥á áá ášáááááᥠášáá ášááµáá£á± áá¥ááµ áá³á á áá°áá á¥á á á ááá ášáášá áá± á ááá á á°ááá°á á°áá ášáŠáœ ááá ááášá ááœáá, ášáá«á áš SQL áá áááµá«áµ ááá áá, áááá«á±á ášáá°á ášá á¥áµáµá«ááœá á°ášáá áá°á£á. .
á áá
áá³á áá á«áá ááá³ášáµ ááá áá á ááá£ááµ ááᜠášááᥠáá³ááœá áááá á á¥áá° ááᢠáá áá«áááá ááœááá¢. ááᜠááááᜠááá ášááœáá áµ á°á¥á³á¢á¢ á á ááá áá á°ášá á ááá á¥ááŽáµ ááá á á¥áá°ááœá áá³ááᜠá¥áá
á áá¢
á áµáᜠá¥ášáµ á ááµ ááááµ áá°á á á«ááá ášááᥠáá³ ááá á ášáááᣠáá° ááá£ááµ áááášáµ á áá¥ááµá¢
3.3 áá© ááá³ 3. á£á áááµ á°ášá áá, ášááá°áá á°ášá á¥á«áá³áá± ááµááá ááááµ áá á ááá«áᜠá ááµ.
áááá£áµ ááá°ááµ ááááá¡ áá
á á áá á áá á°ášá ášá ášáŽááᜠá áá«á áµáá á« ááᢠáá
á á á°áá£á á ášáá³áá áá á¥ááá³áµášáá¢
á áááµ-á°ášá áá áá á«á á ášáŽááᜠvs. á á ááµ á°ášá áá áá.
ÐОМÑÑÑ
á°áá
- ášááµááá ááááœá áá¥á ášá áá¶áœ áá¥á áá á¥á©á áááááµ áµááá«áµááá áááµáá£áµ ááµ á¥áá¢
- á°ášá᪠ášá²áµá áŠá³ ááá³á¢ á ááá áá á¢ááŽáá¶áœ (á¥áá° áµááµá á¢ááŽáá¶áœ ášá°ášá±) ášá ááµ áµáᜠá«áážá ášá²áµá áŠá³ áµááááµá± áá¥á«áá³áá± ášáµá ášá°á£á áážáá¢
- áá¥ášááááá áá°áá°á áµááá ášáá á á áá¶áœ á¥áŽá¶áœ áá£á áá³ášá»á¢ á áá°ááጠáá°ášáµá£ á 11,5 á áá¶áœ áá 2% áá£á á¥á á¥á á áá ášá áá¶áœ á¥ááµ áá ááá¢
- ášááᥠááµá áááášá ááá
- ášá áá ááᜠá®áµ
áá ááá«: áááá á áá°áá. áá¥ááµ ášááá£ááµ áá áá á¥á áᜠá áá± áµááá áá á áµáá á« ááá áá á¥áá ááá³ ášááá áááá«á±á á á°ááá ášááᥠáá³áᜠááµá¥ á«ááµ á°áá ášáŠáœ á á áá áá¥ááµ á áá°á«áá¢
3.4 á á ááá áá³á. ááᜠá¥á ášá³áá áááœ
á¥áá° áá ááášá ášááœá ááááá ášáášá ááá á ášááá£ááµ áá á áµááá áá£á£ááá¢
3.4.1 ášáááµ ááá®áœ áá á¥áááœ
áá
ášááá£ááµ á£á
áá á á ááá á á«á£á¢ ááᢠá ááááá ááµá á á£á á¥á áá¥á á«áážá á áœá³ááœ, ááµááá¶áœ, áááá¶áœ á¥á ášáááá ááŽáᜠá á. áá¥á«áá³áá± á³á«á á ááµ ááá®á áá³áᜠá«áá á ášáŽá ááá á áááá«á³á á áá°áá. ášáá
á á áá 99% ášááááµ ááµá®áœ á£á¶ áááá.
ášá ášáŽááᜠᚠSQL á³á³á€á á ááá áááá áá³áá -âá³á«áâ ~ 100 ááµá®áœ ᣠâááµáááµâ - 000 ááµá®áœ ᣠâáŽá«áâ - 100 ááµá®áœ ᣠâááµá¥áµáŠáœâ - 000 ááµá®áœ ᣠááá°. á¥áá ááá¥áá. ááá á¥á áºáᜠá«ááµ á°áá ášáŠáœ á³á³á€á ááá á áµáœáááœáᣠá¥á«áá³áá³ážá áá ááµ ášá°áá°á áááá°á (á¥á áá°á«ášá¡ ááœáá!)ᣠááááááœá£ ááµááá¶áœ á¥á á áºáᜠášááá á© á°ášá᪠á áá ášáŠáœ á á¥ááá á áá ášáŠáœ áá«ášá ááááá¶áœá¢
ááá£ááµ áááµáááµááµ á°áµáá áá, áááá«á±á áá¥á«áá³áá± á áœá°á áµá ášáááá á³áªá, ášá°áá«á© ášáááá ááŽáᜠá¥á ášááµáááµ áµááá¶áœ áµáááá áááá« á¥áá²áá¥á© áµááá«áµáœá, á áá ááá, á£á¶ á áá ááá¶áœ áá á°ášá᪠ášá²áµá áŠá³á á³á«á£áá, áá á¥áá°. á áááááµ áá³á áá ááá.
ááá£áá á áá áá áµá á°áᜠáášá ášá«á ášááᥠáá³ áááá á áá¹ ááá¢, áµá á°áá áá ášáá°ááá ášá°áá«á© áášáááœá áášáážáµ á¥á áá°á«ááµ á áµááá á²áá. áá
á ááµáááµ, á á£áá, á áá á«, á áá
á°á á¥á á ááᜠá á«á£á¢áᜠá°ááá áá
.
á¥ááᥠááᣠá SQL ááµá¥ á¥ááµ á ášáŽááᜠá«ááµ áá áá®ášá
á ááœááá¢
á ááá á áá ášáŠáœ (ALTER TABLE) áá á«ááá ášá³á³ ááá áá¥á ááášá á á áá áááµáµ á¥áá°ááœá ááµá¢á á áá°ááᢠMySQLᣠááá³áᣠALTER TABLE ADD| DROP COLUMNá ášá á®áá á áá ášá¥ áá° á á²á± á°áá ášá¥ (ášá°áá°á MyISAMᣠInnoDB áá°á®áœ) áá ááá á áááá ᥠáá°á«áᢠáá³ááá³áµ á«ááá á á¢áá®á ášááá á© ááááŠáœá ášá«á ášáµá« á³á³á€á ááááµ ááá ááœááá¢
ááá£ááµá ášá°á ááá ášáášá á áááá©á ááášá ááá á á«áµášááááᢠá ááááá áá á¥á ášáááááážáá ááážááá á á²áµ áá¥ášá¶áœ áá° ááááá ááá áášá á¥ááœááá á ááááá ášá¥áááµ á°áášáµá¢ ášá
ááá«ááœá áµá ááášá áá ášá°á«á«á áááŠáœ ášá áµá°ááᣠá áá°á« ášááᥠáá³ áá áá°á© ááœáá.
áµááá
, á¥á
á á á£á á¥á ášáá ášá áá«á áá¥ášá¶áœ á¥áááœá ááášáážáµ á²áá£, ááá£ááµ á á£á á¥á© ááá« áá.
á á°ášááªá ᣠá á ááá áá ááµá¥ ááá áááá¶áœ á¢-ááᜠáµááá áá° ášáµááá áá¥ášá¶áœ ááµášáµ áá£á áááá ááµá³ááµááµá¢
ááá£á á³á³á€áᣠá á á áááᣠá°áášá³á áášáá ášáášáážáµ á á á á«áá á°ááµ áá á«á°á®áš ášááᥠáá³ á áááµ ááᢠáµááá , á°ááµ-á°á®á ášááᥠáá³áᜠášáááá ááááŠáœá á áášáážáµ ááµá ášááá á áá áá ááá³á°á© ááœáá. áá á ááá á°áá³á³á á áá°áááááááá MongoDBá á¥ááá°áµá¢ á áá áá« ááµá¥ á áášá°ááµ áááá«á¶áœ ášááááá«á áá áážááá.
- ášá°ááµ áá á. ášáá á«ááá«á ááá á JSON á áážáµ (á áá áᥠá áµááá BSON) áœáá á²áá ášáá°áá áá á 16 áᣠá á«á£á¢ ááᢠáá°á¡ ášá°á°ášáá á ááµ ááá ášJSON á°ááµ á ááµá¡ ášá°ášááž á¥á ášáá«á á áá³ ášá°áá ášáá ášJSON á³á³á€á á áá°áá°áá áµ áá á¥áá³áááá ááᢠáá á°ááµ áµá á áœá°áá áááá áášááᜠáá«á á áá áµ. ášá³á«á ááááŠáœ áá á«á á ááá«á ááá á¥áá°ááœá áááœáá á¥áááááᢠášáá°áá ášá«ááµ áá á 16 áá á£ááµ áá²á«áá ášá áœá³ á«áá³ážá MRI ááááœá ᣠášá€ááµá¬á áááá«ááœá á¥á ááᜠá¥áá¶áœá á«á«á°á± á áœá°ááœá á«á áá ᢠá á ááµ ášá áá á áá á ááá«á ááá£ááµ á¥á áŽá«á£ááµ áášá áááááµ ááœááᢠá ááá á°ášá, áá áá ááá á¥ááœááá, áá á¥á á¥áá¥ááá.
- á á³á«áá á°áá ášá¥ ááµá¥ ášááá° á áá / ášáááᥠ/ ášáá°ášá áá. á¥áá²á áááá± ášáášá ááµ á«áá³áá á áá áá° áá á°áš áµááµá³ ááá ᥠá áá áµ (áá áµáá áá á áá!)ᣠBSON á áá°áá°áᣠá á²áµ ááµááá ááááµá áášá/ááášá/á°ááᣠá¢ááŽáá¶áœá ááááᣠáá° BSON áážá á¥á á á²áµá áá ááµááᥠá áá áµá¢ ááá á ááá á ááµá ášá°áá°á áá¥ášáµ ááµášáµ á¥á áááá á á¥á» áááááá¢
- ášááá°á¥ áá¥ášá¶áœ áá£á áá³ášá»á¢ á á°ááµ ááµá¥ á«á á¥á áá¥ášá¶áœ á¥á á£áá¥á-á°ášá á áááá©á£ á á ááá áá ááµá¥ á«áá á¥á«áá³áá± ááááµ á¢-áá á ááá ášááá°á£á áá¥ášá¶áœ áá³ášá» áá£á ááááᢠá BSON ááµá¥ ášáááááá áá¥ášáµ áááááµ á°áá±á á ááµáá áá°áá°á á ááŠáµá¢
3.3.2 á°áá³á áµááµá®áœ
á á¶áºá¬á²á áµááµá®áœ (á áá áµááµáá á¢áá) á á ááá áá á°ášá á áµááá áá£á£ááᢠááá³áᣠᚠPHP ášáᣠá¥áá²á á«á áµááµá á ááááªá«á áµá¥á 3.3.1 áá áá³á«áá¢
$a = array(
"name" => "Vince Medvedev",
"city" => "Moscow",
"threatments" => array(
"surgeries" => array("apedicectomy", "biopsy"),
"radiation" => array("gamma", "x-rays"),
"physiotherapy" => array("knee", "shoulder")
)
);
3.3.3 á°áášáµ á°áá¶áœá¡ XMLᣠJSON
á¥áá²áá á ááá á á ááá áá á°ášá á°ášááœá·á. ááášáá» á á°áá«áš ááááµ áááᥠááœáá.
XML
á€ááµá€áá€áá áá° ááá£ááµ ááá áµá áµ ááá ááááµ ášááá« á£á
áªá«áµá á ááµááá ááááµ áášáážáµ ááᢠá¥á ášááá« á£á
áªááœá á áá¥ááµ ááµášáµ á áµááá ášáá áá° á°áá«á© á
ááá«áᜠáááááá«ážá á¥ááœáááá¢
<note id=5>
<to>ÐаÑÑ</to>
<from>СвеÑа</from>
<heading>ÐапПЌОМаМОе</heading>
<body>ÐПзвПМО ЌМе завÑÑа!</body>
</note>
á COS áá áá ášá®á± áá áááá³áá¡-
Set ^xml("note")="id=5"
Set ^xml("note","to")="СаÑа"
Set ^xml("note","from")="СвеÑа"
Set ^xml("note","heading")="ÐапПЌОМаМОе"
Set ^xml("note","body")="ÐПзвПМО ЌМе завÑÑа!"
á áµá°á«ášáµ- áá€ááµá€áá€áᣠJSONᣠá á¶áºá¬á²á áµááµáᣠá á ááá áá á°ášá á¥á ášáá³á« áááá¶áœá ááá ááá£áµ ááœááᢠá áá á áá£á, á ááµá³áá» ááá«á ááµá¥ ášáááµ á³ááœá á á°á á°ášá°á á ááážá£ášá á. á á ááá áá á°ášá ^xml áááµ ááá«áᜠá áá°á á á°á á°ášá°á áá³á«áᢠáµáááá á á¥á¥á ááááá£ášá ᣠááá³á ášáášá°ááá áá³á« áá áá ááœáá-
áá°á
ášááá 3.3.1 á«áá ášááááªá«á á¥áá ášáá
á JSON á°ááµ áážá¥á«á
á«á³á«áá¡-
var document = {
"name": "Vince Medvedev",
"city": "Moscow",
"threatments": {
"surgeries": ["apedicectomy", "biopsy"],
"radiation": ["gamma", "x-rays"],
"physiotherapy": ["knee", "shoulder"]
},
};
3.3.4 á á°áášáµ ááááá¶áœ ášá°ááá á°áá³á³á ááá á®áœ
áá³áááœá¡ ášáœá«á á¢á®áᜠááá áᣠá á€áá€áá€á ááá á ááµá¥ á«á á°áᜠášáááá áµ áŠá³á£ á áŒá ááµá¥ á«á áááµ áŠá³áᜠá³á³á€áá¢
á³á³á€á áááá«áᢠášáµáµá®á ááá áááµá á¥áá° ášá ááá áá ááµááá ááááµ á áá á¥áŽáµ áá áá ááœááᢠášáá«á á á£á á áá«á«áá á¥áá áµáᎠáááášá¥, áµáá áá¥á°áµ á«ááá á ááá«á áááášá¥ á á áááá. á á ááá áá á°ášá, ááá á ááá«áᜠá á¥á«áá³áá± á°ášá á á¥áá áµáᎠá¥áá«á¬ áá°ášá°á«á.
ášáœá«á á¢á®áᜠááá
á, á MLM ááµá¥ ášá°áᜠááá
á. á áááᜠášá á
áááá áááµ áá á£á
áªá«áµ ášáá«ááá£áá ášá°áá°á ášáážáá« ááááœá áášáážáµ ááœááᢠááá³á ᣠášá°á°á á ášáááµ áá ášáœá«á áá áᢠá ááááá á
áœá áµ ášááááá á
ááá«á áµá¬á¶áœá ášáá«ááá£áá
ááµá ááááµ á¥ááœáááá¢
4. ááá£áá áá áá á á£á á áá ášááá á ášáµáá ááá³áᜠáá?
ášááááªá«á áááµ ááá£ááµá á áá áá ášáá°á ášáá¥ááµ áášáá ášáá«ááá£ážáá áá³á®áœ á«ááá£áᣠááá°áá á°áá ášááµá ááá ášááᥠááŽá á²ááá ááá¢
áá¥ááµ
ášááᥠáá°áµ / á áá«ášá¥ áááááµ
- ááµáá£áµ (á á¥á«áá³áá± á°ášá á á«áµ-á°á áá°áá°á)ᣠ[á ááµá°á ááá áášá á áá ááµášá]
- áááµ áááœá á ááµáááµ áá
- ášááá°á¥ áá³ášá» ášáá«áµáááážá á¥á ášáá áá¥ášá¶áœ á«áážá ááá®áœ
- ášáá»ááµ á ááá«ááœá ášášáµááá á ááá«á ášááá áœáá³ á«áá á°áášá³á ááá áᣠášáááá©áµá á¥áá³
- á¥áááµ-ášááááªá«á ášášáá° ááµá áá°áááá«
- á¥á á á á£á á¥á ášá áá«á [á¥á/ááá áá] áá¥ášá¶áœ/á á«ááµ á«áážá ááá®áœ/á á«ááµ
- ááµá-á«áá° ááá¥á¢ á¥á áá á á³á²áµ áá¥ášá¶áœ á²á³á© á¥á á á®ááá¹ áá áá.
- á¥á á³á³á€á ááá á á áá¥á á¢
- ášááááµ áá ášá¶áœ á¥á ášáá³á áááœ. áááá¶áœá á¥áá° áá áááášá á áẠá áááá áµ áá.
- á°á°áááááµá á³áá áá ášá°áášáµ ááá á®áœá ááµáááµ
ááá¥á
ááµá°á£á á«: áá
áœáá á¥á á á¥á± áá ášá¥á á áµá°á«ášá¶áœ ášá¥á á áµá°á«ášáµ áážá á¥á áš InterSystems á®ááá¬áœá áŠááŽáá áŠá³á á ááááá.
ááá: hab.com