áĽáľá¨ á
áἠáá áľá¨áľ á áŚáľáááá˛á᪠50 á´áŁ á¨áá á áá¨á á áĽááá°á áá á SQL á áááá ááľáĽ á°á¨áá˝áˇáᢠááĽáá˛á
ááááą á¨áľáá˝ áá á SQL DBMS á á áá áá ááŁá áĽá á áľá°ááá áĽá áľá
á°áľá á¨áááá á¨ááἠááá¨áá ááá
á¨áĽ áá˝á á¨áááťá áá. áĽááá áá áĽáá°áá
áŁá á ááŁááὠᨠNoSQL áá°áĽáŽá˝ ááľáĽ á ááą áĽá
á áá áááá, ááá áá ááá ááá áá° NoSQL áá°ááá á áá˝áá: á ááłááľ á áŤáᾠᨠACID ááĽááľ ááľáľááá˝á ááááá.
áá á¨ááá¤áľáŞá¤á áá¨ááťá áĽááľáá áá áááśááᣠáŤá áááľáŁ á¨áľá á°áľ ááťáťááᣠá¨NoSQL áľáááśá˝á ááłá°á áĽá á ááťá¸áá á¨ááŤááἠá˛á˘á¤áá¤áľáŁ ááá áá á á°ááłáłá áá ááĽááłá áľáááśá˝ ᨠACID ááľáľááá˝á áĽáá°áŤá áááŤáᢠá¨áá á á˛áľ ááá áĽááľ á¨áá°áŠ á¨á˘ááąáľáľáŞ áľáááśá˝ á á, áľááá áĽáá˛á ááááąá áľáááľ áĽáŤáłá˝áá á°ááŁáŤá á áľááá áá° áááľ áĽáŤ á áľááŁáá.
áĽáá´áľ áĽáá°áá°áŤ áĽá áá áĽáá°á°áá ᨠ- á ááŤáŠ áľá áŤááĽáĄ.
áᏠᨠOdnoklassniki áááá á°áááŤážá˝ ᨠ70 áááŽá á áá áአááĽááá˝ áá¸á. áĽá
á¨2010 ááᎠáŤáłááľáŤá áľáá áá áá á á¨áľáŞáľ 0.6 áááŽá˘ ááŹáŁ á ááŤáł á°ááá áľáĽáľáŚá˝ áľáŤ áá áá¸áᢠá áŁá ááŁá áááľá°á á á°á¨ááľ á¨4 áááŽá á áá áľáŤáá˝á áá°áŤáᣠáľáá á°áá 260 á˛á˘ áŤá¨ááťáá˘
áááᣠáĽááá
áá ááá¨áá¸áľ á¨ááŤáááá á°áŤ NoSQL áľáĽáľáŚá˝ áá¸áá˘
á SQL Server nodes áá áá¨áá ááá°áŤá¨áľ áááąáá á ááŁá áĽá á ááľá á°á áááá˘
ááťáá˛áá ááľáá áááŁáá SQLá áááá ááĄ-
- á¨áá ááá áá°áŚá˝á á áá ááá ᣠááááŤáąá á áá¨áááá áľ áá á¨á áá á áŤá ááłáá፠á áá á áááá áá ááá áá˝ááá˘
- á á˛á˘á¤áá¤áľ á˛áአáá áŁáá á°á¨á᪠áááľ ááááŤáľ á¨á°á¨ááš áá°áśá˝á áĽá ááľá á´áá˝á á áá áááá˘
- á¨áá á á°á ááąáľ áá áĽá áĽá á áááá° á¨á˛áľá áľáááá ᥠJOINs á áá áááá˘
- á¨ááĽááľ ááŞáŁ á¨ááľ áááááŤáá˝á áááááľ áŤáá°áá á á¨áááá á°á¨áá áĽáá ááááá˘
- á áá ááĽááśá˝á áĽáť áá á¨áááá˝áá (á á ááŤá á¨100 áá´ á áłá˝)á˘
- áŁááĽá á¨áľá ááá áĽá á°áá á áá ááá ááááŤáąá áĽá ááĽá áŤáá¸á á¨ááľ áááááŤáá˝ - á á ááľ áá á ááľ áááἠáĽáť áĽáááááááá˘
- áá ááá˝ áá áá á¨áá¨ááááľ á áá¨á á áááá˝ áĽáť áá - áá á¨á á¨á´á á ááľ áĽá áľ áŤáá áá áá áááľ á¨ááἠááłáá á¨áá á á áá ááŤá áĽá ááľááą ááá˘
áĽááá áĽááááá˝ á¨SQL á ááááŽá˝ á¨áá°ááá á ááťá¸á áĽááľáá¨áá á áľá˝áááᢠááá áĽáá á˝ááŽáš á¨áá áá° áá áĽá¨á¨áአááĽá°áá. áĽáľá˛ áĽááŤá¸áá˘
á SQL áá á˝ááŽá˝
- áĽá á áŤáłá˝á á¨á°áá áťáá˛áá áľáá°á áááᣠá áłá˛áľ á¸ááá˝á áá¨á á á áľá°áłáłáŞáá˝ á áĽá á°á¨ááááᢠá áá áá ááᣠááአá¨áá˝á á¨ááἠá ááá˝ áĽáŤááá˝á á ááá¨áĄáá˘
- á á°áá á¨áĄ ááľáĽ áŤááľ ááááŚá˝ ááĽá áĽá¨á¨áᨠá˛ááľ á¨ááľááŁáą áĽá á¨ááťáťáŤá ááĽááľ ááááłá, á˘áá´ááśá˝á áá° ááŁá á áá á¨áĽ á˛á¨ááŠ, ááĽááą á á ááľ áĽááľ ááááłá, á˘áá´ááśá˝á ááá á áĽá áĽáá°áá ááá á áá áááľáłá.
- á áááľ ááľáĽ á ááľá°á áá á áŤáá áááśááľ á SQL á áááá ááአá¨áá á¨á° áááľ á áľá°áłá°áá á áľá¸á᪠áŤá°áááá
ááá á˝áá áá ááá˘
áľá á°áľá ááłááľ
ááá˛á SQL á áááá á°áŤá á¨áľá á°áľ ááťáťá á ááᢠá ááľ á¨ááἠááł á áááá áĽáť á áá áĽáá á áĽá á á¨áśáľáľ á ááą áá¨á˝ááᢠá áá áá áŁá˘áŤá á 20 á°áááá˝ á°áááˇá, áá á°ááŁáááľ á áá. 64 á°áá¨áŽá˝ áŤáááľ á á¨áśáľáľ áłáááłáľ á áá´ áŁá˘áŤá ááá¨áŁáᢠáĽá 200 á ááááŽá˝ áŤáááľ áŁá˘áŤá á á¨áłáááą á áá°áŤáᢠáá á˝áá ááá˘
ᨠSQL á áááá áľá
á°áľ ááťáťáá áááťáťá áá ááľá¨á ááťáá? ááŞáá˛áŤ áĽááľáááᣠáááĽáááá˘
áá ááľ ááŁáŞáŤáá˝ á ááľ ááá¨áŚá˝ áŤáľááááá: á ááŤáł ááŁááľ, ááá á áŚáá˛ááľ, á¨á፠áá¨ááť, áĽá á¨á°á áŁáŁá ááŤá°áľ á áľá°ááá á áá°áŤá: áľá inclusions ááŤá¨á 10% áá ááľááá ááᣠáŁáĄá áá á¨áá áŁá á፠ááľááá ááááľ ááľááľ ááľáĽ áŤá áá.
ááá áá á¨áá ááááą á áŁá á¨ááá áááľá°á áááá ááłáą á¨áááá áľ á¨áá¨á ááĽá¨á ááľááľ á¨áá áᎠááááľ ááᢠOdnoklassniki á áŤáľ á¨áá¨á ááá¨áá˝ á áᾠᣠáĽá áá á áá ááľááľ á áá¨á°áľá áľ áá á á ááą ááľáĽ áĽáŤá áá¨ááἠá ááĽáá˘
ááá
á ááľ áááá¨áľ ááťáá
áĽááá áá á˝ááŽá˝ áŤáá˛áá áááľá áŤáľáááá¸áá áĽá áá° áááá áľááłááŤá¸á ááľáᢠáĽáá SQL Server á áá á¨áą á¨ááŤá°áááá ááá áá°ááá á ááĽá - ááĽááśá˝á˘
ááá ááĽááľ
á¨á°á°áá ᨠᨠSQL ááŽááŤáá áĽááł á ááťá á áŁá áááá ááĽááľ á áľáĄá áľáĄ ááśá áá° á áá á áá¨áᢠá áá áá˝ áĽá ááśáá˝ á á°ááŤáŠ áłá áá˝ ááľáĽ ááááŁáᢠá áá á á¨á áἠááś ááŁáŞ á ááᢠá¨ááŤá áĽáá˛á ááááą ááĽááľ á áá¨á°ááľ á°á¨ááá˝ áá¨ááá.
- á áá áá á ááá áĽááá°áááá˘
- á ááś á áá á¨áĽ ááľáĽ áá¤áľ ááá áŠ.
- ááśá ááá á°á¨á áŤááᣠá á áá á ááľáĽ áŤááľá á¨á áἠááśáá˝ ááŁáŞ áĽááľááłááᣠááááĄá á áááá ááĽááąá áĽááá áááá˘
ááá á áá°áľ áŽáľáĄ-
TX.start("Albums", id);
Album album = albums.lock(id);
Photo photo = photos.create(âŚ);
if (photo.status == PUBLIC ) {
album.incPublicPhotosCount();
}
album.update();
TX.commit();
ááááľ ááĽááľ á áŁá á¨á°ááá°á áááł á¨áá¨á ááą áá° á¨áá°áá áŞáŤá á áááá áá á°á¨ áľááľáł ááá ἠᣠá¨áá ááá áááἠáĽá á á˛áśášá áĽá´áśá˝á áá° áłáłá¤á ááááľ áááá áĽááŤááᢠáĽááá áá á áĽáá°áá ááááľ ááĽááľ ááľáĽ áĽá á áŤááľá ᣠáĽá á á¨á´ááá˝á áĽááááááá˘
ááĽááľ á˛ááá á¨áá áľáááľ á°ááłáłá ááἠá á ááľ áá ááťáťáŤ áá¨á°áľ áá˝ááᢠáááłá á áá˛áľáá á°á ááá á áá ááááľ á°á áŤáŁáŞ áá áĽá áááľá áá˝áá áĽá áľááá
ááá á¨á°á ááá ááśáá˝ ááá ááá á¨ááŁá¸ááᣠááŤáľ áአááá á ááŁá¸áᣠáá
áááľ photo.statusá áá° áá áĽá´áľ áááἠáĽá á°ááłá ááŁáŞáá˝á ááĽááľ áááľ ááᢠá ááá˝ ááá¨áľ áĽáá°ááťáá, áá
áááá áŤá á¨áľáá ፠áĽá á¨á á°ááŁá á ááťáťáŤ ááľáľááá˝ áłááá á¨áá¨á°áľ á¨áá, áĽáá° áĽ.á¤.á .
á á ááľ ááĽááľ ááľáĽ á¨á°ááŤáŠ á¨áááľ áľáá
áśá˝á á¨áááŁá á áĽá áĽáá°áá
áŤá áŽáľ á áŚáľááááľá᪠áááá áá á°á˝ááᢠáá° NoSQL á áá°á°áľ áááľ áá°á¨áľ
ááá˝ á°ááłáłá á áľááá ááľáááśá˝ á¨áá¨á°ááľ áá áŠ:
- á¨ááἠááĽá¨á áĽáá˝áľ á áá¨á°áľá áľ áá áá á˛áą áá¨ááť ááá ἠáĽá ááťá áááąá ááááľ á ááŁá¸áá˘
- á áá áŤááá á¨áĽáľááľ ááĽááľ áá á á . áááľá ᣠá¨á á˛áľ áá¨ááť áá á áá°áŠá áľ áá á¨áŽáą áá á á áááľ á°ááłáłá ááá á áá ᾠᣠáá° áá¨ááťá á ááľ ááá áá¨á á áŤáľáááá ᣠáááśá˝á ááááłáľ áľáá° áááŽá˝á áŤáłáĽáŠ ᣠááá°á á°á¨á á˘áá´ááśá˝á ááá á á ᣠááá°.
- á¨á á˛áą áá¨ááť ááĽááľ á á á ááŁá ááá á áá áľáŁ áááąá áá¨ááá˝á á ááŤááĄá áľ áá áĽá ááĽááśá˝á á áá°áŠá áľ ááᣠáá
á á áá¤áłáááľ á á áŤáłáá áĽáĽá
ᣠá á ááá-áááᣠáá áááá áááľááá˝áŁ áááłá
áááľ-á°á¨á áľáááśá˝ . - á á á¨áŤ áá áŤáľ-á°á ááŹáľá˘
- áŤáá°áááą á¨áĽá¨áľ áááĽáŤáŽá˝á ááááľ áłáŤáľááá á°áŤ ááŤá˝ á ááááŽá˝á áá ááá˘
- á áŠáŁááŤá ááá˘áá˝ á¨áá¨ááť áááľ ááľá. á áá á áááá á áľá፠á¨áá°á á ááŁáá¤áľááľ ááá ááááľ ááá áááľááá˝áŁ á á°ááá á á፠ááá˘
ááłááá˝, ááłááá˝
ááá á¨áá˝á áááľááá˝á á áá°áá°á áááľ ááá á¨áá˝á á¨ááá á ááŤáŽá˝á á á áá áááĄ-
á¨ááááŞáŤá áááááá á¨SQL á áááá ááľáś á¨áááááá á¨áľá á°áľ ááťáťááŁá¨ááłáŤ áá´áŁá¨áľáááľ áľáĽáľáĽáŁáááľ á ááłáľá áĽá á¨á°á°áŤá¨áŁáłáá áĽá ááŁá á¨á¤á˛á˛ ááĽááśá˝á áá°áá á ááᢠáá áá á ááŤá á áŁá ááá áŤááá áĽá áá á¨áááľáľ áá áĽáá ááááááá˘
ááá°áá á ááŤá ááá á¨áá á¨NoSQL áá¨ááť á¨á°á°áá ᨠááŹáľáŁ á¨á˝áá
áá°áŁá°áĽáŁ á¨áááľ á ááłáľ áĽá ááĽááśá˝á áá°áá á áĽá SQL áĽáŤáľá ááá°áľ ááᢠá ááááŞáŤ á˛áłá, SQL á á¨áá°áá á á°ááŁá áĽááłá, á¨á¤á˛á áᲠááĽááśá˝á áłáá á
áľ, ááááłáľ áľáŤ áááľáá. áá á á°ááŁá á¨ááá ááá ᨠSQL áŁá
áŞáŤáľ áľáĽáľáĽ ᨠANSI SQL á áŁá á¨áŤá áááá á°ááááĽá.
áŤáłááľáŤ áĽá CQL
áľááá áľá áŤáłááľáŤ áá á áľá°áłá˝ ááá á á ᣠáá áŁá áŞáá˝ á ááľ?
á ááááŞáŤáŁ áĽáá áá°ááŤáŠ á¨ááἠá áááśá˝ áľáá áŤáá¸á á°áá á¨áŚá˝á ááá á áľá˝ááá ᣠá áá ááá áá¨áĽ ááá á ááá ááľá¨á áľá˝ááá á˘
CREATE TABLE photos (id bigint KEY, owner bigint,âŚ);
SELECT * FROM photos WHERE id=?;
UPDATE photos SET ⌠WHERE id=?;
á¨á°áŁá á¨ááἠááĽááľ ááá¨áááĽáŁ áŤáłááľáŤ áá ááá
áśáľáľ ááśá˝á áľááá áĽá á¨áááľ ááá˝ áľááá á á ááŤá¨áĽ ááŁáá
ááá á¨áŤáłááľáŤ áĽá á áŁá˝áá á˛áá áŤá°á¨áá¸á áááŚá˝ áá á áá á°ááŁáŤá áááá¸áá ááá áá á áá á áĽá á áá áĽááłáá°á°áá አá¨ááŤá¨ááἠáá´ ááᢠáá á ACID ááľáĽ A á ááááłáľ áŤáľá˝ááá - á¨áłáĽá ááľáĽ atomity.
á áŤáłááľáŤ ááľáĽ ááá°á¨á ááĽááśá˝ á áŁá á
áἠá¨ááá ááá "" á°áĽá á¨áá áŤá áá.
áŤáłááľáŤ ááľáĽ áŤááá áá˘
áľááá ᣠá áŤáłááľáŤ ááľáĽ áĽááá°á á¨á¤á˛á áᲠááĽááśá˝á áá°áá á áá á¨áĽáᢠáĽá á ááá ááá˝ áááľ ááš á¨áĽááłá á˛á˘á¤áá¤áľ áŁá áŞáá˝á áá°áá á áĽáá˝ááá-ááĽááľ áŤáá¸á ááŁá á˘áá´ááśá˝ ᣠáá á á ááá ááá áĽáť áłááá áááĽá áĽááľáááἠáŤáľá˝ááá ᣠáĽá á¨á°ááá°á á¨áŤáľ-á°á áá᪠ááłáááŤáá˝á˘
á * á ááľ
áľááá á á˛áą á˛á˘á¤áá¤áľ á°ááá° á * á ááľáśáľáľ á áááľ á¨á áááá ááśá˝á áŤáááĄ-
- áá¨ááťáá˝ (á¨áá áá°á) áá°á á á¨áŤáłááľáŤ á ááááŽá˝ á ááá ááľáĽ áľáŤááŽá˝ áá áá¨áá á¨áá¨áá¸áľ áááááľ á ááŁá¸áᢠá¨áá¨áá áááľ áĽá áá á áĽáŤá°á á˛ááľ ááĽáŤá¸á á ááá áĽáľá¨ á áľá áĽá á ááśáá˝ áá°ááľ áá˝ááá˘
- á¨ááĽááľ á áľá°áŁáŁáŞáá˝ - á¨ááĽááśá˝á á áááá áŤá¨áááĄ.
- á°áá áá˝ á¨áááľ áĽáŤáá˝á á¨áá°ááĽáŠ áĽá ááĽááśá˝á á¨áááአá¨áá°áá áŞáŤ á ááááŽá˝ áá¸áᢠá áşáá˝ á¨ááá አáĽáá°áá áŤá á°áá áá˝ ááአáá˝ááá˘
á¨ááá á áááľ á ááááŽá˝ á á፠ááá ááľáĽ áá¸áᣠáĽááľ á áĽááľ ááááŁáŁáľ á¨áŤáłááľáŤ á¨ááľáĽ áááĽááľ ááŽáśáŽáá áá áá áĽá
á°áá áá˝
á¨áá°á á á á˝á¨ááŤáŞáá˝ ááá
ᨠFat Client áááł áĽá
á áá áááá. áĽáá˛á
ááááą ááľááá ááááľ áá¨áá á áŤá¨áá˝á, ááá áá áĽáá° áĽáŤá ááľáá¸á፠á áľá°áŁáŁáŞ áá ááŤáááá áá˝áá, áááľá, á°áá áá áŤáą á¨áĽáŤáááš á áľá°áŁáŁáŞ áá áá áŤá: á¨áá¨ááť á
ááá˝á ááááŁá áĽá áááśá˝á áááłá. áá
á¨áááľ á áľá°áŁáŁáŞ áá áááááľá á¨áá ááá áá°á á á á˝á¨ááŤáŞ á¨á áá á áľá°ááá áĽá ááŁá áĽáť áłááá á¨áĽáŤááá˝á áľáááľ ááááŁá áá áŤáľá˝ááᢠá á°áá áá áá á¨á°á¨áá° ááĽááľ ááŞáŁ áĽáŤááá˝ áá° áá¨ááťáá˝ áááŤáᢠá°áá áá ááĽááľ á¨á¨áá° á ááĽááą ááľáĽ áŤá ááá áĽáŤááá˝ áá° ááĽááą á áľá°áŁáŁáŞá áááŤáá˘
á * á ááľ á¨ááĽááľ á áľá°áŁáŁáŞ
á áľá°áŁáŁáŞá á C * á ááľ á¨áŁáś á°ááŁáŤá áŤá°á¨ááá ááᢠááĽááśá˝áᣠáááááŤáá˝á áĽá ááĽááśá˝á á¨áá°áá áŠá áľá á á°á á°á¨á°á á¨ááľá°áłá°á áááááľ á áá áľá˘
ááĽáŤááłááą á áááááľ á¨áá°á á ááĽááľ á áľá°áŁáŁáŞá á¨áá áá
á°á áŤáááŤáᥠáĽáŤááłááą á°á¨áłá á¨ááłáá ááĽááľ áá ááŁáᢠá áŤáłááľáŤ áŤáá á¨áááľ á ááłáľ áľáááľ á áá áá
á°á áá á¨á°áá°á¨á° áľááá (á¨áááľ áĽááľ á ááľ á¨ááአááááŚá˝áŁ á¨á
áἠááá á¨áá áá
á°á á áľááá áá á°áĽá ááłá°áŁá) áááą áá áá á¨áááłá áááŁáŠ ááĽááľ á áá°áá ááᢠá áá
á á°ááŁáŤá á áľááááá˘
áááááŤáá˝
ááááá ááá¨ááἠáááá ááááľ ááá áá ááľááá - á°áľá á áľááŤá áááá˝ á áááᥠáá ááá ááᢠá áá á ááááᣠá ááĽááľ ááľáĽáŁ áááἠááááŞáŤ ááááᣠá¨ááŤá ááá áĽáŁ ááťáťá áĽá ááľááἠá áá áľá˘ á¨á°áłáŤ áá áŞáłá á áá áĽáť áááἠáá¨ááľ á¨áá˝áá á°ááŤáŤáŞ ááĽááśá˝ áá ááá áľ áá˝ááá˘
áĽáá°áá á áááľ áááááŤá áá°áá á áŁáá°á¨ááá á áŤáŁá˘ ááľáĽ ááá áá. á á°á¨ááá áĽáááľ ááľáĽáŁ áááľ áá ááááśá˝ á áᥠáá á¨á°á¨ááá áááááŤá á áááľá°á áá áá°áá áᣠááá ááĽááśá˝á á áá°áŤá¨áľ á°ááłáłá áááἠá¨ááŤáŤáľáą ááĽááśá˝ á á°ááłáłá á áľá°áŁáŁáŞ áááá á áááááľ áá°áŁáá˘
á áĽá áááł áá¨áá ááľááá á SQL ááľáĽ áŁá á¨á áŤáŁá˘ ááĽááśá˝ áĄáľáá˝ ááŤá¨á á°á°áŤááˇá ᣠá¨á áŤáŁá˘ ááĽááśá˝ áĄáľáá˝á áá áľá°áŁáŁáŞáá˝ áááá°áĽ á°ááľáá-á ááľ á áľá°áŁáŁáŞ áááá ááĽááśá˝ ᨠ0 áĽáľá¨ 9 ᣠááá°áá - ᨠááľáá°áŤ áá áŤá¨áááá ᢠᨠ10 áĽáľá¨ 19, ááá°. á áá¤áąá, áĽáŤááłááą á¨á áľá°áŁáŁáŞá áááł á¨ááĽááą áĄáľá áá áááá.
á¨ááŤá áááááŤáá˝ á á áľá°áŁáŁáŞá áá á°á¨ áľááľáł ááľáĽ áĽáá° áŁáá HashMap áá°áá አáá˝áá.
á¨á áľá°áŁáŁáŞáá˝ áĽáá˘á°áááľ
á ááľ á áľá°áŁáŁáŞ á¨ááĽááąá áĄáľá áĽáť ââá¨ááŤáááá á áááᣠááĽááąá áááľáá¸á á°á°ááá áá¨áŤá á áá ááĽá፠áá áĽáá˛áá á¨ááľááąá áĽáááł á ááĽááľ ááá°á á áŁá á áľááá ááᢠáá áá ááŁá áĽá á áľá°ááá áááľá¨áᣠáá ááá á¨á°á ááá á¨ááá á° ááŁá¤ á¨ááľááľ ááľ ááŽáśáŽáá á°á áááá˘
áĽáŤááłááą á¨áá¨á ááá¨á á˘áŤááľ áááľ á áľá°áŁáŁáŞ á áááá˝á áŤáľá°áááłáᢠá á¨ááá áĽáŤááłááą á áľá°áŁáŁáŞ áááá˝ á áľá°áŁáŁáŞáá˝ á¨áἠááľ áááĽááľ áááŤáá áľá á á áŤáŠ áŤáłááá áĽáá˛áá ááá¨á¨áť áá á¨á¨áľááš á áľá°áŁáŁáŞáá˝ á áááľá°á ááľáĽ á¨áἠááľ áááĽááľ áĽáá°á°á¨á°á áŤáłáááá˘
á¨ááŞááš á°ááłáłá áá¨á áĽáá° á¨áἠáľááł áááĽááśá˝ á ááá á áĽáŤááłááą á áľá°áŁáŁáŞ á¨áľááš á¨áááľá°á á áááá˝ áĽáá°áá አáĽá áĽáá°ááá አááŤáą áááľáá ᣠá áŽá¨á áááá áááŤáᢠáá°á áá á¨áááĽááľ á°á¨á°á á¨ááľ Yᣠá¨ááŤáŁ Y áá°áŤáᢠá á ááťáŠáŁ áĽááá á¨áá°á áááááśá˝á á¨á áá áá áĽáá°ááá ᣠáŤá Y á áá°áłáŤáᢠá¨áááááᣠááá á° ááŁá¤á ááľááá ááááľ Xá á¨áą ááá áááĽááľ áĽáá°áááá á á¨ááá¨áᣠááľááá ááááľ X áĽáŤáą áĽáá°áá°á áááĽáŤáá˘
á¨áἠááľ áááĽááśá˝ á á¨áá°á áľáááá˝áŁ á á´áŽááľ 20 áá áŤá áᣠá 50 ms áá áááŤáᢠá á፠á ááťáť á°áĽáłá˘á ááááŤáľ á á°ááá᪠áá ááł ááá áááá˝ ááááŤáľ á¨áá°áá áŞáŤ ááá˝ á 50áá´ ááľáĽ ááľáľá ááľá áľ á¨áŁáľ ááᢠáá áá á¨ááá˝ áá ááłáŤáľ á¨áťááá G1 á¨ááťáť á á°áŁáłá˘á á áá áá ááᣠáá á ááᲠááłáá˝ áááł ááááá áĽáá˛áááš áŤáľá˝áááłáᢠááá ááᣠá ááłááľ ááᣠá áŁá á áá á ááᣠá°áĽáłá˘á áŁáá áľ áááá á¨50 áá´ á áá áááłáᣠáá á áá° á¨á°áłáłá° ááľááľ ááŤá፠áá˝ááᢠáá áá áááľáá¨áľ á áľá°áŁáŁáŞá á¨áááľ ááľááá ááááľ á áááłáŤáąá á ááááĽá á¨áą á¨ááŁá á¨ááááŞáŤ á¨áἠááľ áááĽááľ á˛á á áĽáť á á°á¨áłáłá áĽá á áá°áá á˘áľááá á¨á áľá°áŁáŁáŞá ááľááá ááááľ ááľááľ á 200 á.
ááá áá á¨áľáá ááľááá ááááľ ááĽáŤáľ áĽááłáá á ááĽááľ ááá¨áłáľ á á á áá°áá. áľá áĽáą á ááľ ááá áá°á¨á á áá áľ.
áŚáł ááľáŤá
ááá˛áŤá áĽá
áą á¨áááá°á ááłá áŤáá°áłáŤááľ á ááąá á áá áá á¨á á˛áąá áá፠áááľááá áá á˘
á áĄáľá 50 ááľáĽ ááĽááľá ááá¸á áĽáááááá áĽáá á. á¨áá°áŞáŤ áĽá
áľá á áľááľáá áĽáááááá, áááľá, á¨áľááš á áááá˝ á¨áĄáľá 50 ááĽááśá˝á á áá á áľá°áŁáŁáŞá ááľááľ ááľáĽ áŤáľáá˝áá. ááŁá˝á á¨áá¨á ááĽá¨á áĽáá˝áľ á˛á¨á°áľ áľáááąá áĽá áľáŤáá ááá á ááᢠá¨ááááŞáŤá áá áŁá á፠á¨áá á¨áá¨á ááĽá¨á ááľááá ááááľ áĽáá°ááá áĽá ááá°áá áá áŁá á፠á¨áŚáľá°áá ááľááá ááááľ áĽáá°ááá áĽááááááᢠáá
áĽá
áľ á ááľ áá á¨á°áá¨á áá áĽá á¨áááľá°á áśááá áĽáľáŞáá¨á áľá¨áľ á ááááĽá áááľá á áłá˛áľ á áááá˝ áĽáľáŞáᥠáľá¨áľ (áá
á á áŁá á áá á áá áá á¨áá¨á°á°á)ᢠá¨á áŽáá ááľááľ á˘á¨á°áľ á á˛áľ áá ááłá á¨ááá¨áĽ á
á°á á°á¨á°á áá áá áĽáá°áá¨á°áá áááá-á¨ááááŞáŤá á°á áŁáŁá áá ááł áááá ᣠáĽá ááľáŤáąá áŤáá ᣠááá°áá á°á áŁáŁá ááááá˘
áĽáá˛á ááááą áá áľ á¨ááá á ááá á áááŞáá á¨á áá á áľá°ááá áá, ááááŤáąá á á˛áľ ááłá áááááľ, á¨á áŽááá ááľááľ áĽáááł áááá°á á á áá.
áá á°áá áá˝ á¨áľáá ááł á á áá áá áĽá¨á°áŤ áĽáá°áá áĽáá´áľ áá¨áąáłá? á 50 ms ááľáĽ á áşáá˝ áááá አá°áá áá˝ áá¨áá áááá á¨áááťá áá. áá ááł á¨á áá á áá áĽá¨á°áŤ áĽááłááá áá áłáŤáá á ááľ á°áá á ááĽááľ áááááľ áĽáŤá áᎠááá áá˝ááᣠáĽá áĽáŤáá á áá ááĽá፠áá ááá áá ááᢠáá áĽááłááá á°áá áá˝ á áááłá áááł ááĄáľá áá áĽá ááááąá áá áŁá ááŤáá˝ ááĽááľ áááááľ áĽáŤáá áááŤá ᣠáá á áá áá áá á¨ááá ááłá áĽáť ááá áĽáŤá ááá˝ áá°áŁá ᢠá ááĽááą ááľáĽ áŤá ááá ááŁá áááááśá˝ á á°áá áá á¨áá¨ááááľ á¨áá ááł áá áĽáť ááá˘
á°á áŁáŁá ááśá˝ á¨áŤáłá¸á áááá ááĽááśá˝ á¨á°áá ááľá áĽáŤááá˝ áá°áá°á áá á á°á¨áášá áľ áŤáá°áááą ááĽááśá˝ áá¨á áá áŤáľáááŁáᢠááŁáŞá ááł á¨áá° á á˛áą ááľá°á áá°áśá˝á á¨áá¨áá áááááľ áá ááá áĽá áá°áá áá ááá˝ áá°áŁáᢠá°áá áá ááľááá á¨ááľáá ááł áá ááĽááľ áááááľ á¨áťá, ááá°áá ááá˝ á˝á ááŁáá (áĽá, á ááá˝, áĽáá˛á ááááą ááĽááľ á áá ááá á áĽá á á°áá áá áá°áááá).
ááĽááľ áĽáá´áľ áĽáá°áá°áŤ
á°áá áá ááĽáá°áá á áááľ áĽá ááĽáá°áá áŤá áá ááá ááá á áŤá ááĽááľ áááááľ áá áľá°áŁáŁáŞá áĽáŤá áᎠáĽáá áᢠá áľá°áŁáŁáŞá áá áá á áŤá ááá á ááľáłááť ááľáĽ áŁáá á¨áááá፠á á¨á´á áá áŤáľááá áá. á áľááá á¨áá á áľá°áŁáŁáŞá áá áá á áŤá á¨áąá áŤááŁá áĽá á¨á°áá ááá ááἠá á áľá°áŁáŁáŞá áá á°á¨ áľááľáł ááľáĽ áá° ááĽááľ áááł áŤáľáááŁáá˘
á ááľ á°áá á á ááĽááľ ááľáĽ áááĄá ááááἠá˛ááá á
áááá áĽáá˛áŤáľá°áŤáá áá áľá°áŁáŁáŞá áĽáŤá áááŤá áĽá á áľá°áŁáŁáŞá á á˛áąá áá¨á á ááĽááľ áááł á°áá á¨áĽ ááľáĽ á áá
á°á¨ áľááľáł ááľáĽ áŤáľáááŁáᢠáá
áá¨áťáá áŤá áá
áá - áá¨ááťá á áá°áťááá˘
á ááľ á°áá á áĽáá° áá ááĽááľ á áŤá á¨áŤáąá á¨á°áá¨á¨ ááἠá˛á áá
á áľá°áŁáŁáŞá áĽáá°áá¨á°áá áá áŤáá˘
- ááłáááŤá ááľááá á ááĽááą ááľáĽ á¨áá ááᥠá¨áá á°á¨ áľááľáł ááá°áłá áŁ
- á áá á°á¨ áľááľáł ááľáĽ ááá ááłáá፠á¨áá á¨áá°áá áá¨á á¨ááľáłááť ááśá˝ ááľáĽ ááá áŁá ᣠááľááá á áá á°á¨ áľááľáł ááľáĽ áŤááľ áá áá°áŁááá áĽá áá¤áą áá° á°áá áá ááááłáá˘
áľááá á°áá áá á¨áŤáąá áááŚá˝ ááá ἠáá˝áá, áĽá ááá˝ á°áá áá˝ áĽááá á áááŚá˝ á áŤáŠá, ááááŤáąá á á áľá°áŁáŁáŞá áá á°á¨ áľááľáł ááľáĽ áĽáť áľááá¨ááš, á áŤáłááľáŤ á áááá˝ ááľáĽ áá á áá°áá.
á°áá áá áá áŞáłá á˛ááᣠá áááááą á áá
á°á¨ áľááľáł ááľáĽ á¨áá á¨á áááł á á áľá°áŁáŁáŞá á á°á°áá áŁá˝ ááľáĽ áá¨ááťá áĽá áá° áŤáłááľáŤ áá°áĽáŽá˝ áĽáá° áááἠá¤áľ áááŤáᢠáá¨ááťááš áá
ááŹá
á á áśáá (áá á áá) áĽáá˛á°áá á á áľááááá áá áŤá°ááá áĽá áá áľá°áŁáŁáŞá ááá˝ ááááą, áááááŤáášá áááá áĽá á¨ááĽááąá áľáŹáľ áá°áá áá áŤá¨áááŁá.
áĽá áááś áááááľ á áľá°áŁáŁáŞá á ááĽááą áááł á¨á°áŤááá áá
á°á¨ áľááľáłá ááť ááľá¨á áĽáť áŤáľáááááá˘
á¨áá á á°ááášáľ ááťáťáŤáá˝ ááááŤáľ á¨á¤á˛á˛ áááá˝á á°ááŁáŤá á áľáááááĄ-
- á áśááá. áá á á˛áľá°á ááľáĽ ááá á áááľ ááĽááľ á á¨áá áĽáá°áááľá°áŤá¨á ááľáľá áá, ááá ááá áááľ áááááš ááá¸áá ááá á ááłá¸áá á ááá¸áá. á áĽá áááł, áá ááá á áŤáłááľáŤ ááľáĽ á á°áááá á áŁá˝ ááááŤáľ ááłáŤá.
- ááĽááľ. áĽáŤááłááą á¨á°áłáŤ ááĽááľ á áľááá áľáááá áá¤áśá˝á áĽáť ááá˝ááᢠááĽááąá á¨á¨ááą áĽá á ááłááľ áľáŤáá˝á áŤá¨ááá á áá áá¤áą áľááá áĽááłááá á¨á°á¨ááá áááś ááááľ áá¨ááááá˘
- áá á. ááĽááľ á˛áááᣠáľáአááĽááśá˝ á áá¤áą áá á°á˝áá ááłá°á á¨ááŁá¸ááᢠá°ááłáłá ááĽááśá˝ á á áľá°áŁáŁáŞá áá á ááŤá˝ á áá áááááŤáá˝ á°ááá°ááᢠá¨ááĽááľ áá áá ááŁáŚá˝áŁ á á°áá á áá á°á¨á á¨áááá ááá á¨á°á¨á ᨠááá˘
- áááááľá˘. á áá á°á á°á¨ááá˝ áá áŤá á˝ááŽá˝ ááá á˘ááá - á¨áľáááľ ááá¨áĽ, á¨áááľáá ááľááľ - á á°áłáŤ áááł á á°á ááá ááĽááľ á¨á°á°á¨á áááŚá˝ áľáŤáá á¨ááአá áá ááá ἠá ááŁá¸á.
á áá¨á á áááá˝ ááá áĽ
á ááľ ááá á á¨á´á áĽááá°áľáĄ-
CREATE TABLE photos (
id bigint primary key,
owner bigint,
modified timestamp,
âŚ)
ááłáá፠(áá ááá)ᣠáŁáá¤áľ áĽá á¨ááťáťáŤ áá á ááᢠá áŁá ááá áĽáŤáá áá á¨áĽ á ááĽááľ - á áŁáá¤áą áá "ááá¨á¨áťá áá" á¨á°áá¨á¨á áľ áá áá áááĽá ááá¨áĄ.
SELECT *
WHERE owner=?
AND modified>?
áĽáá˛á ááááąá áá áá á ááĽááľ áááľáŹáľáŁ á ááłááá SQL DBMS ááľáĽáŁ á á ááśá˝ (áŁáá¤áľáŁ á¨á°áťáťá) áá á˘áá´ááľ ááááŁáľ áŤáľáááááłáᢠá áá á¨á¤á˛á áᲠááľáľá áľááá áá áá á ááá ááľá¨á áĽáá˝áááá˘
á˘áá´ááśá˝ á Რ* á ááľ
á¨ááááá˘áŤ ááłáá፠áá ááá á¨ááá áľ ááś áŤáá áľ á¨ááááŞáŤ á áá á¨áĽ á áá˘
áá˘áá´ááľáŁ C * á ááľ á¨ááá á áá á¨áĽ á
á á¨áá á á˛áľ á áá á¨áĽ áááĽáŤáᢠááá á¨áá¨á á áá á áááá˝ áá á°ááłáłá ááᣠááá áá á¨ááአá áá á¨áĽ á¨ááááĄá áá áááá áŤáŤáľáłááĄ-
á áá á¨ÂŤáŁáááľ XNUMX á°ááłáľ ááľáĽÂť áĽáŤá á¨áá á áá á¨áĽ áĽáá°á°áá¨á áĽáá°áá ááťá áá˝ááá˘
SELECT * FROM i1_test
WHERE owner=?
AND modified>?
á¨ááá á°áá á¨áĽ ááśáá˝ áĽá áá¨á á áá i1 ááŤá¨á áŤáá á¨ááἠááĽááľ á á áľá°áŁáŁáŞá á áŤáľ-á°á áá á ááᢠá áá¨á ááá ááĽá áá áĽáť, ááἠá˛á°ááľ, á áľá°áŁáŁáŞá áŤáááŤá áĽá áááĄá áááá á°áá á¨áĽ áĽáť áłááá á¨á ááá˝á áááŚá˝ áŤáľáłááłá. á áá¨á á áá á áá á¨áĽ ááá á°á¨á᪠áľáááśá˝ á áá¨áááá, áááἠááľáłááťáá˝ á ááá áĄá, áááááŤáá˝ áĽá á áá á áááá. áááľá ᣠá˘áá´ááśá˝á áá¨á ááĽáśá˝á á ááá á áĽá á á°ááŁá ááťáťáŤáá˝á á¨áá°áá á ááĽááľ áá á°á˝áá á áŤáłáľááá˘
á á¤á˛á áᲠáĽááłáł âáĽáá° SQLâ á˘áá´ááśá˝á áá°áá á á˝áááᢠá CQL áá áá ááá ááľáĽ ááĽááľ áŤáá¸áᣠááአá¨áá˝áᣠááŁáᣠááŁáአá¨áá˝á áĽá á¨á°ááᥠáá¸áᢠá¨áá¨á á áá áľáá á áá°áá áŞáŤá áŽáľ áá ááá á áááľ ááἠá áŤáľáááááᢠá SQL ááľáĽ áĽááłáá ááá ááá ááá áá. áĽá á¨ááá á áá ᣠá˘áá´ááśá˝ á ááá á¨ááĽááľ á áá á¨áĽ áá á¨á°á°á¨á áááŚá˝á á¨ááľáá¸á፠ááĽááľ áá á°á˝áá á áŤáłáááá˘
áááľá áá á¨ááá
á¨áśáľáľ á ááľ á ááľ C * á ááľá á ááá á°á ááááľ áľáŤ á áľááŁááá˘
áá á ááŁá? á áá á áŤá á ááłá¨áá¨áĽ ááľáĽ áŤá á áŁá á áľááá á¨áá¨á ááááśá˝ á ááą á¨áááá ááśááŤáá˝á ááááá á áĽá ááá¨áá¸áľ áááľ áľáááľ ááłá áá áá áá áĽááááááᢠáá áľá ááśááŤááš á áŤááľ áłááá áľá ááá ááááľ ááł-áá¨ááá˝ áá. á áá á áŚáľááááľá᪠ááľáĽ áá° 20 á˘ááŽá á¨áá á áĽáá°áá áŤá ááááŚá˝ á á ᣠáľáááą á á´áŽááľ 80 áşá áĽáŤááá˝á áŤááĽáĄ ᣠá á´áŽááľ áĽáľá¨ 8 áşá á¨á¤á˛á áᲠááĽááśá˝ á¨áá¨á ááťáťáŤ áá ááááłáá˘
SQLá á ááŁááľ ááááŤáľ = 1 (ááá áá á RAID 10) áľáá áá á¨ááś á˛á áá¨áá á á¨áá°á á°á¨á á ááá 32 á¨ááááŽáśááľ SQL á áááá áá˝áá˝ (á á°á¨á᪠11 áááááŤáá˝) áá á°á¨áá˝áˇáᢠáĽáá˛ááᣠáá áŁá á፠á ááá˝á ááá¨áá¸áľ 10 á ááááŽá˝ á°ááľá ááᢠá áľáአ50 ááľ ááŞáá˝á˘ á á°ááłáłá áá, áľáááą á á°á°á¨á áááľ, áŤá á áłá á ááˇá.
áá° á á˛áľ áĽáááľ á¨á°á¸áááá á ááᣠá¨ááŁááľ ááá°á = 3 - á áĽáŤááłááą á¨áá¨á ááá¨á ááľáĽ á á á ááá°ááᢠáľáááą 63 á¨áŤáłááľáŤ áá¨ááť ááśá˝ áĽá 6 á áľá°áŁáŁáŞ áá˝áá˝ á áľáአ69 á ááááŽá˝ á ááľá˘ ááá áá áĽááá áá˝áá˝ á áŁá ááŤá˝ áá¸á, á á á ááá ᨠSQL áľáááľ áá 30% áŤá á. á áá áááł, áááą á 30% á°á¨á áá áááŤá.
C * Oneá á ááľá°ááá ᣠáááá¨áľá áááˇáᥠá SQLᣠá¨ááá áľáŤ 4,5 áá´ áŤá á ááľáˇáᢠá C * á ááľ - áá° 1,6 á.á. á¨ááĽááľ áá á á ááŤá ᨠ40 ms áŤáá° áá, ááá áááľ á 2 ms ááľáĽ áá áááá, á¨ááá ἠáĽá á¨ááťá áá á á ááŤá 2 ms áá. 99áá ááá°ááłáá á¨3-3,1 áá´ áĽáť áááŁá¨áá ááĽááŤáá˝ ááĽá á 100 áá áááˇá - ááá á á°áá áááłá á á ááá ááááŤáľá˘
áĽáľá¨ááŹáŁ á áĽáááᚠᨠSQL á áááá ááśá˝ á°ááá ááᣠá áłá˛áľ áááśá˝ á¨áááááľ C * á ááľá á áá áá ááᢠá á°ááá˝á ááľáĽ áĽáá˛á°áŤ C * á ááľá á áľá°áŤááááá˘
á áá ááá˝ áá¨ááťááťá˝áá áá° á°áá áááľá°ááá áĽá¨á°áŤá áá - áá ፠áášá á¨á°áᨠáłáŞá ááá˘
ááá: hab.com