ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ

ืื—ื“ ื”ืชืจื—ื™ืฉื™ื ื”ืื•ืคื™ื™ื ื™ื™ื ื‘ื›ืœ ื”ืืคืœื™ืงืฆื™ื•ืช ืฉืื ื• ืžื›ื™ืจื™ื ื”ื•ื ื—ื™ืคื•ืฉ ื ืชื•ื ื™ื ืœืคื™ ืงืจื™ื˜ืจื™ื•ื ื™ื ืžืกื•ื™ืžื™ื ื•ื”ืฆื’ืชื ื‘ืฆื•ืจื” ืงืœื” ืœืงืจื™ืื”. ื™ื™ืชื›ื ื• ื’ื ืืคืฉืจื•ื™ื•ืช ื ื•ืกืคื•ืช ืœืžื™ื•ืŸ, ืงื™ื‘ื•ืฅ ื•ื”ื—ืœืคื”. ื”ืžืฉื™ืžื” ื”ื™ื, ื‘ืชื™ืื•ืจื™ื”, ื˜ืจื™ื•ื•ื™ืืœื™ืช, ืื‘ืœ ื›ืฉืคื•ืชืจื™ื ืื•ืชื” ืžืคืชื—ื™ื ืจื‘ื™ื ืขื•ืฉื™ื ืžืกืคืจ ื˜ืขื•ื™ื•ืช, ืฉื‘ื”ืžืฉืš ื’ื•ืจืžื•ืช ืœืกื‘ืœ ืœืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช. ื‘ื•ืื• ื ื ืกื” ืœืฉืงื•ืœ ืืคืฉืจื•ื™ื•ืช ืฉื•ื ื•ืช ืœืคืชืจื•ืŸ ื‘ืขื™ื” ื–ื• ื•ืœื’ื‘ืฉ ื”ืžืœืฆื•ืช ืœื‘ื—ื™ืจืช ื”ื™ื™ืฉื•ื ื”ื™ืขื™ืœ ื‘ื™ื•ืชืจ.

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ

ืืคืฉืจื•ืช ื”ื”ื—ืœืคื” ืžืก' 1

ื”ืืคืฉืจื•ืช ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ ืฉืขื•ืœื” ื‘ืจืืฉ ื”ื™ื ื”ืฆื’ืช ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ ืขืžื•ื“ ืื—ืจ ืขืžื•ื“ ื‘ืฆื•ืจื” ื”ืงืœืืกื™ืช ื‘ื™ื•ืชืจ ืฉืœื”.

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ
ื ื ื™ื— ืฉื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ืžืฉืชืžืฉืช ื‘ืžืกื“ ื ืชื•ื ื™ื ื™ื—ืกื™. ื‘ืžืงืจื” ื–ื”, ื›ื“ื™ ืœื”ืฆื™ื’ ืžื™ื“ืข ื‘ืฆื•ืจื” ื–ื•, ืชืฆื˜ืจืš ืœื”ืจื™ืฅ ืฉืชื™ ืฉืื™ืœืชื•ืช SQL:

  • ืงื‘ืœ ืฉื•ืจื•ืช ืขื‘ื•ืจ ื”ื“ืฃ ื”ื ื•ื›ื—ื™.
  • ื—ืฉื‘ ืืช ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ื”ืฉื•ืจื•ืช ื”ืžืชืื™ืžื™ื ืœืงืจื™ื˜ืจื™ื•ื ื™ ื”ื—ื™ืคื•ืฉ - ื–ื” ื”ื›ืจื—ื™ ืœื”ืฆื’ืช ื“ืคื™ื.

ื”ื‘ื” ื ืกืชื›ืœ ืขืœ ื”ืฉืื™ืœืชื” ื”ืจืืฉื•ื ื” ื‘ืืžืฆืขื•ืช ืžืกื“ ื ืชื•ื ื™ื MS SQL ืœื‘ื“ื™ืงื” ื›ื“ื•ื’ืžื” ื”ืจืคืชืงืื•ืช ืขื‘ื•ื“ื” ืขื‘ื•ืจ ืฉืจืช 2016. ืœืฉื ื›ืš ื ืฉืชืžืฉ ื‘ื˜ื‘ืœืช Sales.SalesOrderHeader:

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

ื”ืฉืื™ืœืชื” ืœืขื™ืœ ืชื—ื–ื™ืจ ืืช 50 ื”ื”ื–ืžื ื•ืช ื”ืจืืฉื•ื ื•ืช ืžื”ืจืฉื™ืžื”, ืžืžื•ื™ื ื•ืช ืœืคื™ ืชืืจื™ืš ื™ื•ืจื“ ืฉืœ ื”ื•ืกืคื”, ื‘ืžื™ืœื™ื ืื—ืจื•ืช, 50 ื”ื”ื–ืžื ื•ืช ื”ืื—ืจื•ื ื•ืช.

ื–ื” ืคื•ืขืœ ื‘ืžื”ื™ืจื•ืช ืขืœ ื‘ืกื™ืก ื”ื‘ื“ื™ืงื”, ืื‘ืœ ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ืชื•ื›ื ื™ืช ื”ื‘ื™ืฆื•ืข ื•ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช I/O:

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ

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.

ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื ืฉืœ ืงืœื˜/ืคืœื˜ ืขื‘ื•ืจ ื›ืœ ืฉืื™ืœืชื” ืขืœ ื™ื“ื™ ื”ืคืขืœืช ื”ืคืงื•ื“ื” SET STATISTICS IO ON ื‘ื–ืžืŸ ื”ืจื™ืฆื” ืฉืœ ื”ืฉืื™ืœืชื”.

ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ืžืชื•ื›ื ื™ืช ื”ื‘ื™ืฆื•ืข, ื”ืืคืฉืจื•ืช ืขืชื™ืจืช ื”ืžืฉืื‘ื™ื ื”ื™ื ืœืžื™ื™ืŸ ืืช ื›ืœ ื”ืฉื•ืจื•ืช ืฉืœ ื˜ื‘ืœืช ื”ืžืงื•ืจ ืœืคื™ ืชืืจื™ืš ื”ื•ืกืคื”. ื•ื”ื‘ืขื™ื” ื”ื™ื ืฉื›ื›ืœ ืฉื™ื•ืคื™ืขื• ื™ื•ืชืจ ืฉื•ืจื•ืช ื‘ื˜ื‘ืœื”, ื”ืžื™ื•ืŸ ื™ื”ื™ื” "ืงืฉื” ื™ื•ืชืจ". ื‘ืคื•ืขืœ, ื™ืฉ ืœื”ื™ืžื ืข ืžืžืฆื‘ื™ื ื›ืืœื”, ืื– ื‘ื•ืื• ื ื•ืกื™ืฃ ืžื“ื“ ืœืชืืจื™ืš ื”ื”ื•ืกืคื” ื•ื ืจืื” ืื โ€‹โ€‹ื”ืฉืชื ืชื” ืฆืจื™ื›ืช ื”ืžืฉืื‘ื™ื:

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ

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.

ื‘ืจื•ืจ ืฉื–ื” ื”ืฉืชืคืจ ื‘ื”ืจื‘ื”. ืื‘ืœ ื”ืื ื›ืœ ื”ื‘ืขื™ื•ืช ื ืคืชืจื•ืช? ื‘ื•ืื• ื ืฉื ื” ืืช ื”ืฉืื™ืœืชื” ื›ื“ื™ ืœื—ืคืฉ ื”ื–ืžื ื•ืช ืฉื‘ื”ืŸ ื”ืขืœื•ืช ื”ื›ื•ืœืœืช ืฉืœ ื”ืกื—ื•ืจื” ืขื•ืœื” ืขืœ 100$:

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

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ

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.

ื™ืฉ ืœื ื• ืžืฆื‘ ืžืฆื—ื™ืง: ืชื•ื›ื ื™ืช ื”ืฉืื™ืœืชื•ืช ืœื ื’ืจื•ืขื” ื‘ื”ืจื‘ื” ืžื”ืงื•ื“ืžืช, ืื‘ืœ ื”ืžืกืคืจ ื”ืืžื™ืชื™ ืฉืœ ืงืจื™ืื•ืช ืœื•ื’ื™ื•ืช ื’ื“ื•ืœ ื›ืžืขื˜ ืคื™ ืฉื ื™ื™ื ืžืืฉืจ ื‘ืกืจื™ืงืช ื˜ื‘ืœื” ืžืœืื”. ื™ืฉ ืžื•ืฆื - ืื ื ืขืฉื” ืื™ื ื“ืงืก ืžื•ืจื›ื‘ ืžืžื“ื“ ืฉื›ื‘ืจ ืงื™ื™ื ื•ื ื•ืกื™ืฃ ืืช ื”ืžื—ื™ืจ ื”ื›ื•ืœืœ ืฉืœ ื”ืกื—ื•ืจื” ื›ืฉื“ื” ื”ืฉื ื™, ื ืงื‘ืœ ืฉื•ื‘ 165 ืงืจื™ืื•ืช ื”ื’ื™ื•ื ื™ื•ืช:

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

ื ื™ืชืŸ ืœื”ืžืฉื™ืš ืืช ืกื“ืจืช ื”ื“ื•ื’ืžืื•ืช ื”ื–ื• ืœืื•ืจืš ื–ืžืŸ, ืืš ืฉืชื™ ื”ืžื—ืฉื‘ื•ืช ื”ืขื™ืงืจื™ื•ืช ืฉื‘ืจืฆื•ื ื™ ืœื”ื‘ื™ืข ื›ืืŸ ื”ืŸ:

  • ืœื”ื•ืกืคืช ื›ืœ ืงืจื™ื˜ืจื™ื•ืŸ ืื• ืกื“ืจ ืžื™ื•ืŸ ื—ื“ืฉ ืœืฉืื™ืœืชืช ื—ื™ืคื•ืฉ ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื”ืฉืคืขื” ืžืฉืžืขื•ืชื™ืช ืขืœ ืžื”ื™ืจื•ืช ืฉืื™ืœืชืช ื”ื—ื™ืคื•ืฉ.
  • ืื‘ืœ ืื ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ื—ืกื™ืจ ืจืง ื—ืœืง ืžื”ื ืชื•ื ื™ื, ื•ืœื ืืช ื›ืœ ื”ืชื•ืฆืื•ืช ืฉืชื•ืืžื•ืช ืืช ืžื•ื ื—ื™ ื”ื—ื™ืคื•ืฉ, ื™ืฉื ืŸ ื“ืจื›ื™ื ืจื‘ื•ืช ืœื™ื™ืขืœ ืฉืื™ืœืชื” ื›ื–ื•.

ื›ืขืช ื ืขื‘ื•ืจ ืœืฉืื™ืœืชื” ื”ืฉื ื™ื™ื” ืฉื”ื•ื–ื›ืจื” ืžืžืฉ ื‘ื”ืชื—ืœื” - ื–ื• ืฉืกื•ืคืจืช ืืช ืžืกืคืจ ื”ืจืฉื•ืžื•ืช ื”ืขื•ืžื“ื•ืช ื‘ืงืจื™ื˜ืจื™ื•ืŸ ื”ื—ื™ืคื•ืฉ. ื ื™ืงื— ืืช ืื•ืชื” ื“ื•ื’ืžื” - ื—ื™ืคื•ืฉ ืื—ืจ ื”ื–ืžื ื•ืช ื‘ืขืœื•ืช ืฉืœ ื™ื•ืชืจ ืž-$100:

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

ื‘ื”ืชื—ืฉื‘ ื‘ืื™ื ื“ืงืก ื”ืžืฉื•ืœื‘ ื”ืžืฆื•ื™ืŸ ืœืขื™ืœ, ืื ื• ืžืงื‘ืœื™ื:

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ

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.

ื”ืขื•ื‘ื“ื” ืฉื”ืฉืื™ืœืชื” ืขื•ื‘ืจืช ืขืœ ื›ืœ ื”ืื™ื ื“ืงืก ืื™ื ื” ืžืคืชื™ืขื”, ืฉื›ืŸ ื”ืฉื“ื” SubTotal ืื™ื ื• ื‘ืžื™ืงื•ื ื”ืจืืฉื•ืŸ, ื•ืœื›ืŸ ื”ืฉืื™ืœืชื” ืœื ื™ื›ื•ืœื” ืœื”ืฉืชืžืฉ ื‘ื•. ื”ื‘ืขื™ื” ื ืคืชืจืช ืขืœ ื™ื“ื™ ื”ื•ืกืคืช ืื™ื ื“ืงืก ื ื•ืกืฃ ื‘ืฉื“ื” SubTotal, ื•ื›ืชื•ืฆืื” ืžื›ืš ื”ื•ื ื ื•ืชืŸ ืจืง 48 ืงืจื™ืื•ืช ืœื•ื’ื™ื•ืช.

ืืชื” ื™ื›ื•ืœ ืœืชืช ืขื•ื“ ื›ืžื” ื“ื•ื’ืžืื•ืช ืœื‘ืงืฉื•ืช ืœืกืคื™ืจืช ื›ืžื•ื™ื•ืช, ืื‘ืœ ื”ืžื”ื•ืช ื ืฉืืจืช ื–ื”ื”: ืงื‘ืœืช ื ืชื•ืŸ ื•ืกืคื™ืจืช ื”ืกื›ื•ื ื”ื›ื•ืœืœ ื”ืŸ ืฉืชื™ ื‘ืงืฉื•ืช ืฉื•ื ื•ืช ืžื”ื•ืชื™ืช, ื•ื›ืœ ืื—ื“ ื“ื•ืจืฉ ืืžืฆืขื™ื ืžืฉืœื• ืœืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ื‘ืื•ืคืŸ ื›ืœืœื™, ืœื ืชื•ื›ืœ ืœืžืฆื•ื ืฉื™ืœื•ื‘ ืฉืœ ืื™ื ื“ืงืกื™ื ืฉืขื•ื‘ื“ ื‘ืื•ืชื” ืžื™ื“ื” ืขื‘ื•ืจ ืฉืชื™ ื”ืฉืื™ืœืชื•ืช.

ื‘ื”ืชืื ืœื›ืš, ืื—ืช ื”ื“ืจื™ืฉื•ืช ื”ื—ืฉื•ื‘ื•ืช ืฉืฆืจื™ืš ืœื”ื‘ื”ื™ืจ ื‘ืขืช ืคื™ืชื•ื— ืคืชืจื•ืŸ ื—ื™ืคื•ืฉ ื›ื–ื” ื”ื™ื ื”ืื ื‘ืืžืช ื—ืฉื•ื‘ ืœืขืกืง ืœืจืื•ืช ืืช ืกืš ื”ื—ืคืฆื™ื ืฉื ืžืฆืื•. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืงื•ืจื” ืฉืœื. ื•ื ื™ื•ื•ื˜ ืœืคื™ ืžืกืคืจื™ ืขืžื•ื“ื™ื ืกืคืฆื™ืคื™ื™ื, ืœื“ืขืชื™, ื”ื•ื ืคืชืจื•ืŸ ืขื ื”ื™ืงืฃ ืฆืจ ืžืื•ื“, ืžื›ื™ื•ื•ืŸ ืฉืจื•ื‘ ืชืจื—ื™ืฉื™ ื”ื”ื—ืœืคื” ื ืจืื™ื ื›ืžื• "ืขื‘ื•ืจ ืœื“ืฃ ื”ื‘ื".

ืืคืฉืจื•ืช ื”ื”ื—ืœืคื” ืžืก' 2

ื”ื‘ื” ื ื ื™ื— ืฉืœืžืฉืชืžืฉื™ื ืœื ืื›ืคืช ืœื“ืขืช ืืช ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื ืฉื ืžืฆืื•. ื‘ื•ืื• ื ื ืกื” ืœืคืฉื˜ ืืช ื“ืฃ ื”ื—ื™ืคื•ืฉ:

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ
ืœืžืขืฉื”, ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉื”ืฉืชื ื” ื”ื•ื ืฉืื™ืŸ ื“ืจืš ืœื ื•ื•ื˜ ืœืžืกืคืจื™ ืขืžื•ื“ื™ื ืกืคืฆื™ืคื™ื™ื, ื•ืขื›ืฉื™ื• ื”ื˜ื‘ืœื” ื”ื–ื• ืœื ืฆืจื™ื›ื” ืœื“ืขืช ื›ืžื” ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ื›ื“ื™ ืœื”ืฆื™ื’ ืื•ืชื”. ืื‘ืœ ื ืฉืืœืช ื”ืฉืืœื” - ืื™ืš ื”ื˜ื‘ืœื” ื™ื•ื“ืขืช ืื ื™ืฉ ื ืชื•ื ื™ื ืขื‘ื•ืจ ื”ืขืžื•ื“ ื”ื‘ื (ื›ื“ื™ ืœื”ืฆื™ื’ ื ื›ื•ืŸ ืืช ื”ืงื™ืฉื•ืจ "ื”ื‘ื")?

ื”ืชืฉื•ื‘ื” ืคืฉื•ื˜ื” ืžืื•ื“: ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืžืžืกื“ ื”ื ืชื•ื ื™ื ืจืฉื•ืžื” ืื—ืช ื™ื•ืชืจ ืžื”ื“ืจื•ืฉ ืœืชืฆื•ื’ื”, ื•ื”ื ื•ื›ื—ื•ืช ืฉืœ ืจืฉื•ืžื” "ื ื•ืกืคืช" ื–ื• ืชืจืื” ืื โ€‹โ€‹ื™ืฉ ื—ืœืง ื”ื‘ื. ื‘ื“ืจืš ื–ื•, ืืชื” ืฆืจื™ืš ืจืง ืœื”ืคืขื™ืœ ื‘ืงืฉื” ืื—ืช ื›ื“ื™ ืœืงื‘ืœ ืขืžื•ื“ ืื—ื“ ืฉืœ ื ืชื•ื ื™ื, ืžื” ืฉืžืฉืคืจ ืžืฉืžืขื•ืชื™ืช ืืช ื”ื‘ื™ืฆื•ืขื™ื ื•ืžืงืœ ืขืœ ื”ืชืžื™ื›ื” ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื›ื–ื•. ื‘ืชืจื’ื•ืœ ืฉืœื™, ื”ื™ื” ืžืงืจื” ืฉื‘ื• ืกื™ืจื•ื‘ ืœืกืคื•ืจ ืืช ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ื”ืจืฉื•ืžื•ืช ื”ืื™ืฅ ืืช ืžืกื™ืจืช ื”ืชื•ืฆืื•ืช ืคื™ 4-5.

ื™ืฉื ืŸ ืžืกืคืจ ืืคืฉืจื•ื™ื•ืช ืžืžืฉืง ืžืฉืชืžืฉ ืœื’ื™ืฉื” ื–ื•: ืคืงื•ื“ื•ืช "ืื—ื•ืจื”" ื•"ืงื“ื™ืžื”", ื›ืžื• ื‘ื“ื•ื’ืžื” ืœืžืขืœื”, ื›ืคืชื•ืจ "ื˜ืขืŸ ืขื•ื“", ืฉืคืฉื•ื˜ ืžื•ืกื™ืฃ ื—ืœืง ื—ื“ืฉ ืœืชื•ืฆืื•ืช ื”ืžื•ืฆื’ื•ืช, "ื’ืœื™ืœื” ืื™ื ืกื•ืคื™ืช", ืฉืขื•ื‘ื“ ืขืœ ื”ืขื™ืงืจื•ืŸ ืฉืœ "ื˜ืขืŸ ื™ื•ืชืจ" ", ืื‘ืœ ื”ืื•ืช ืœืงื‘ืœ ืืช ื”ื—ืœืง ื”ื‘ื ื”ื•ื ืฉื”ืžืฉืชืžืฉ ื™ื’ืœื•ืœ ืืช ื›ืœ ื”ืชื•ืฆืื•ืช ื”ืžื•ืฆื’ื•ืช ืขื“ ื”ืกื•ืฃ. ืœื ืžืฉื ื” ืžื” ื”ืคืชืจื•ืŸ ื”ื—ื–ื•ืชื™, ืขืงืจื•ืŸ ื“ื’ื™ืžืช ื”ื ืชื•ื ื™ื ื ืฉืืจ ื–ื”ื”.

ื ื™ื•ืื ืกื™ื ืฉืœ ื™ื™ืฉื•ื ื”ื”ื—ืœืคื”

ื›ืœ ื“ื•ื’ืžืื•ืช ื”ืฉืื™ืœืชื” ืฉื ื™ืชื ื• ืœืขื™ืœ ืžืฉืชืžืฉื•ืช ื‘ื’ื™ืฉืช "ื”ื™ืกื˜ + ืกืคื™ืจื”", ื›ืืฉืจ ื”ืฉืื™ืœืชื” ืขืฆืžื” ืžืฆื™ื™ื ืช ื‘ืื™ื–ื” ืกื“ืจ ืฉื•ืจื•ืช ื”ืชื•ืฆืื” ื•ื›ืžื” ืฉื•ืจื•ืช ื™ืฉ ืœื”ื—ื–ื™ืจ. ืจืืฉื™ืช, ื”ื‘ื” ื ื‘ื—ืŸ ื›ื™ืฆื“ ืœืืจื’ืŸ ืืช ื”ืขื‘ืจืช ื”ืคืจืžื˜ืจื™ื ื‘ืฆื•ืจื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ื‘ืžืงืจื” ื–ื”. ื‘ืคื•ืขืœ, ื ืชืงืœืชื™ ื‘ืžืกืคืจ ืฉื™ื˜ื•ืช:

  • ื”ืžืกืคืจ ื”ืกื™ื“ื•ืจื™ ืฉืœ ื”ืขืžื•ื“ ื”ืžื‘ื•ืงืฉ (pageIndex), ื’ื•ื“ืœ ื”ืขืžื•ื“ (pageSize).
  • ื”ืžืกืคืจ ื”ืกื™ื“ื•ืจื™ ืฉืœ ื”ืจืฉื•ืžื” ื”ืจืืฉื•ื ื” ืฉื™ืฉ ืœื”ื—ื–ื™ืจ (startIndex), ื”ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ ืจืฉื•ืžื•ืช ื‘ืชื•ืฆืื” (ืกืคื™ืจื”).
  • ืžืกืคืจ ื”ืจืฆืฃ ืฉืœ ื”ืจืฉื•ืžื” ื”ืจืืฉื•ื ื” ืฉื™ืฉ ืœื”ื—ื–ื™ืจ (startIndex), ืžืกืคืจ ื”ืจืฆืฃ ืฉืœ ื”ืจืฉื•ืžื” ื”ืื—ืจื•ื ื” ืฉืชื•ื—ื–ืจ (endIndex).

ื‘ืžื‘ื˜ ืจืืฉื•ืŸ ืื•ืœื™ ื ืจืื” ืฉื–ื” ื›ืœ ื›ืš ืืœืžื ื˜ืจื™ ืฉืื™ืŸ ื”ื‘ื“ืœ. ืื‘ืœ ื–ื” ืœื ื›ืš - ื”ืืคืฉืจื•ืช ื”ื ื•ื—ื” ื•ื”ืื•ื ื™ื‘ืจืกืœื™ืช ื‘ื™ื•ืชืจ ื”ื™ื ื”ืฉื ื™ื™ื” (startIndex, ืกืคื™ืจื”). ื™ืฉ ืœื›ืš ืžืกืคืจ ืกื™ื‘ื•ืช:

  • ืขื‘ื•ืจ ื’ื™ืฉืช ื”ื”ื’ื”ื” ืฉืœ ืขืจืš 1+ ืฉื ื™ืชื ื” ืœืขื™ืœ, ื”ืืคืฉืจื•ืช ื”ืจืืฉื•ื ื” ืขื pageIndex ื•-pageSize ื”ื™ื ืžืื•ื“ ืœื ื ื•ื—ื”. ืœื“ื•ื’ืžื”, ืื ื• ืจื•ืฆื™ื ืœื”ืฆื™ื’ 50 ืคื•ืกื˜ื™ื ื‘ืขืžื•ื“. ืœืคื™ ื”ืืœื’ื•ืจื™ืชื ืœืขื™ืœ, ืขืœื™ืš ืœืงืจื•ื ืจืฉื•ืžื” ืื—ืช ื™ื•ืชืจ ืžื”ื ื“ืจืฉ. ืื ื”-"+1" ื”ื–ื” ืœื ืžื™ื•ืฉื ื‘ืฉืจืช, ืžืกืชื‘ืจ ืฉื‘ืขืžื•ื“ ื”ืจืืฉื•ืŸ ืขืœื™ื ื• ืœื‘ืงืฉ ืจืฉื•ืžื•ืช ืž-1 ืขื“ 51, ืขื‘ื•ืจ ื”ืฉื ื™ - ืž-51 ืขื“ 101 ื•ื›ื•'. ืื ืชืฆื™ื™ืŸ ื’ื•ื“ืœ ืขืžื•ื“ ืฉืœ 51 ื•ืชื’ื“ื™ืœ ืืช pageIndex, ื”ืขืžื•ื“ ื”ืฉื ื™ ื™ื—ื–ื•ืจ ืž-52 ืœ-102 ื•ื›ื•'. ื‘ื”ืชืื ืœื›ืš, ื‘ืืคืฉืจื•ืช ื”ืจืืฉื•ื ื”, ื”ื“ืจืš ื”ื™ื—ื™ื“ื” ืœื™ื™ืฉื ื›ืจืื•ื™ ื›ืคืชื•ืจ ืœืžืขื‘ืจ ืœืขืžื•ื“ ื”ื‘ื ื”ื™ื ืœื’ืจื•ื ืœืฉืจืช ืœื”ื’ื™ื” ืืช ื”ืฉื•ืจื” ื”"ื ื•ืกืคืช", ืฉืชื”ื™ื” ื ื™ื•ืื ืก ืžืื•ื“ ืžืจื•ืžื–.
  • ื”ืืคืฉืจื•ืช ื”ืฉืœื™ืฉื™ืช ืœื ื”ื’ื™ื•ื ื™ืช ื›ืœืœ, ืฉื›ืŸ ื›ื“ื™ ืœื”ืจื™ืฅ ืฉืื™ืœืชื•ืช ื‘ืจื•ื‘ ืžืกื“ื™ ื”ื ืชื•ื ื™ื ืขื“ื™ื™ืŸ ืชืฆื˜ืจืš ืœืขื‘ื•ืจ ืืช ื”ืกืคื™ืจื” ื•ืœื ืืช ื”ืื™ื ื“ืงืก ืฉืœ ื”ืจืฉื•ืžื” ื”ืื—ืจื•ื ื”. ื”ืคื—ืชืช startIndex ืž-endIndex ืขืฉื•ื™ื” ืœื”ื™ื•ืช ืคืขื•ืœื” ืืจื™ืชืžื˜ื™ืช ืคืฉื•ื˜ื”, ืื‘ืœ ื”ื™ื ืžื™ื•ืชืจืช ื›ืืŸ.

ื›ืขืช ืขืœื™ื ื• ืœืชืืจ ืืช ื”ื—ืกืจื•ื ื•ืช ืฉืœ ื™ื™ืฉื•ื ื”ื”ื—ืœืคื” ื‘ืืžืฆืขื•ืช "ืงื™ื–ื•ื– + ื›ืžื•ืช":

  • ืฉืœื™ืคื” ืฉืœ ื›ืœ ืขืžื•ื“ ืขื•ืงื‘ ืชื”ื™ื” ื™ืงืจื” ื•ืื™ื˜ื™ืช ื™ื•ืชืจ ืžื”ืงื•ื“ื, ืžื›ื™ื•ื•ืŸ ืฉื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืขื“ื™ื™ืŸ ื™ืฆื˜ืจืš ืœืขื‘ื•ืจ ืขืœ ื›ืœ ื”ืจืฉื•ืžื•ืช "ืžื”ื”ืชื—ืœื”" ืœืคื™ ืงืจื™ื˜ืจื™ื•ื ื™ ื”ื—ื™ืคื•ืฉ ื•ื”ืžื™ื•ืŸ, ื•ืœืื—ืจ ืžื›ืŸ ืœืขืฆื•ืจ ื‘ืงื˜ืข ื”ืจืฆื•ื™.
  • ืœื ื›ืœ DBMSs ื™ื›ื•ืœื™ื ืœืชืžื•ืš ื‘ื’ื™ืฉื” ื–ื•.

ื™ืฉ ื—ืœื•ืคื•ืช, ืื‘ืœ ื”ืŸ ื’ื ืœื ืžื•ืฉืœืžื•ืช. ื”ืจืืฉื•ื ื” ืžื‘ื™ืŸ ื”ื’ื™ืฉื•ืช ื”ืœืœื• ื ืงืจืืช "ื”ื—ืœืคืช ืžืคืชื—ื•ืช" ืื• "ืฉื™ื˜ืช ื—ื™ืคื•ืฉ" ื•ื”ื™ื ื›ื“ืœืงืžืŸ: ืœืื—ืจ ืงื‘ืœืช ืžื ื”, ืชื•ื›ืœ ืœื–ื›ื•ืจ ืืช ืขืจื›ื™ ื”ืฉื“ื•ืช ื‘ืจืฉื•ืžื” ื”ืื—ืจื•ื ื” ื‘ื“ืฃ, ื•ืœืื—ืจ ืžื›ืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ื“ื™ ืœืงื‘ืœ ื”ื—ืœืง ื”ื‘ื. ืœื“ื•ื’ืžื”, ื”ืจืฆื ื• ืืช ื”ืฉืื™ืœืชื” ื”ื‘ืื”:

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

ื•ื‘ืจืฉื•ืžื” ื”ืื—ืจื•ื ื” ืงื™ื‘ืœื ื• ืืช ืขืจืš ืชืืจื™ืš ื”ื”ื–ืžื ื” '2014-06-29'. ื•ืื– ื›ื“ื™ ืœืงื‘ืœ ืืช ื”ื“ืฃ ื”ื‘ื ืืชื” ื™ื›ื•ืœ ืœื ืกื•ืช ืœืขืฉื•ืช ื–ืืช:

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

ื”ื‘ืขื™ื” ื”ื™ื ืฉ-OrderDate ื”ื•ื ืฉื“ื” ืœื ื™ื™ื—ื•ื“ื™ ื•ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื”ืžืฆื‘ ืฉืฆื•ื™ืŸ ืœืขื™ืœ ื™ืคืกืคืก ื”ืจื‘ื” ืฉื•ืจื•ืช ื ื“ืจืฉื•ืช. ื›ื“ื™ ืœื”ื•ืกื™ืฃ ื—ื“-ืžืฉืžืขื•ืช ืœืฉืื™ืœืชื” ื–ื•, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืฉื“ื” ื™ื™ื—ื•ื“ื™ ืœืชื ืื™ (ื ื ื™ื— ืฉ-75074 ื”ื•ื ื”ืขืจืš ื”ืื—ืจื•ืŸ ืฉืœ ื”ืžืคืชื— ื”ืจืืฉื™ ืžื”ื—ืœืง ื”ืจืืฉื•ืŸ):

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

ืืคืฉืจื•ืช ื–ื• ืชืขื‘ื•ื“ ื ื›ื•ืŸ, ืืš ื‘ืื•ืคืŸ ื›ืœืœื™ ื™ื”ื™ื” ืงืฉื” ืœื‘ืฆืข ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืžื›ื™ื•ื•ืŸ ืฉื”ืชื ืื™ ืžื›ื™ืœ ืื•ืคืจื˜ื•ืจ OR. ืื ื”ืขืจืš ืฉืœ ื”ืžืคืชื— ื”ืจืืฉื™ ื’ื“ืœ ืขื ืขืœื™ื™ืช OrderDate, ื ื™ืชืŸ ืœืคืฉื˜ ืืช ื”ืชื ืื™ ืขืœ ื™ื“ื™ ื”ืฉืืจืช ืžืกื ืŸ ื‘ืœื‘ื“ ืœืคื™ SalesOrderID. ืื‘ืœ ืื ืื™ืŸ ืžืชืื ืงืคื“ื ื™ ื‘ื™ืŸ ื”ืขืจื›ื™ื ืฉืœ ื”ืžืคืชื— ื”ืจืืฉื™ ื•ื”ืฉื“ื” ืฉืœืคื™ื• ืžืžื•ื™ื ืช ื”ืชื•ืฆืื”, ืœื ื ื™ืชืŸ ืœื”ื™ืžื ืข ืž-OR ื–ื” ื‘ืจื•ื‘ ื”-DBMSs. ื™ื•ืฆื ืžืŸ ื”ื›ืœืœ ืฉืื ื™ ืžื›ื™ืจ ื”ื•ื PostgreSQL, ืฉืชื•ืžืš ื‘ืื•ืคืŸ ืžืœื ื‘ื”ืฉื•ื•ืื•ืช tuple, ื•ื ื™ืชืŸ ืœื›ืชื•ื‘ ืืช ื”ืชื ืื™ ืœืขื™ืœ ื‘ืชื•ืจ "WHERE (OrderDate, SalesOrderID) < ('2014-06-29', 75074)". ื‘ื”ื™ื ืชืŸ ืžืคืชื— ืžื•ืจื›ื‘ ืขื ืฉื ื™ ื”ืฉื“ื•ืช ื”ืœืœื•, ืฉืื™ืœืชื” ื›ื–ื• ืืžื•ืจื” ืœื”ื™ื•ืช ืงืœื” ืœืžื“ื™.

ื’ื™ืฉื” ื—ืœื•ืคื™ืช ืฉื ื™ื™ื” ื ื™ืชืŸ ืœืžืฆื•ื, ืœืžืฉืœ, ื‘ ElasticSearch scroll API ืื• ืงื•ืกืžื•ืก DB - ื›ืืฉืจ ื‘ืงืฉื”, ื‘ื ื•ืกืฃ ืœื ืชื•ื ื™ื, ืžื—ื–ื™ืจื” ืžื–ื”ื” ืžื™ื•ื—ื“ ืฉื‘ืืžืฆืขื•ืชื• ืชื•ื›ืœ ืœืงื‘ืœ ืืช ื”ื—ืœืง ื”ื‘ื ืฉืœ ื”ื ืชื•ื ื™ื. ืื ืœืžื–ื”ื” ื–ื” ื™ืฉ ืื•ืจืš ื—ื™ื™ื ื‘ืœืชื™ ืžื•ื’ื‘ืœ (ื›ืžื• ื‘-Comsos DB), ื–ื• ื“ืจืš ืžืฆื•ื™ื ืช ืœื™ื™ืฉื ืืช ื”ื”ื—ืœืคื” ืขื ืžืขื‘ืจ ืจืฆื™ืฃ ื‘ื™ืŸ ื”ื“ืคื™ื (ืืคืฉืจื•ืช ืžืก' 2 ืฉื”ื•ื–ื›ืจื” ืœืขื™ืœ). ื”ื—ืกืจื•ื ื•ืช ื”ืืคืฉืจื™ื™ื ืฉืœื•: ื–ื” ืœื ื ืชืžืš ื‘ื›ืœ DBMSs; ืœืžื–ื”ื” ื”ื ืชื— ื”ื‘ื ื”ืžืชืงื‘ืœ ืขืฉื•ื™ ืœื”ื™ื•ืช ืžืฉืš ื—ื™ื™ื ืžื•ื’ื‘ืœ, ืžื” ืฉื‘ื“ืจืš ื›ืœืœ ืื™ื ื• ืžืชืื™ื ืœื™ื™ืฉื•ื ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ืžืฉืชืžืฉื™ื (ื›ื’ื•ืŸ ื”-API ืฉืœ ElasticSearch scroll).

ืกื™ื ื•ืŸ ืžื•ืจื›ื‘

ื‘ื•ืื• ื ืกื‘ืš ืืช ื”ืžืฉื™ืžื” ืขื•ื“ ื™ื•ืชืจ. ื ื ื™ื— ืฉื™ืฉื ื” ื“ืจื™ืฉื” ืœื™ื™ืฉื ืืช ืžื” ืฉื ืงืจื ื—ื™ืคื•ืฉ ืคื ื™ื, ื”ืžื•ื›ืจ ืžืื•ื“ ืœื›ื•ืœื ืžื—ื ื•ื™ื•ืช ืžืงื•ื•ื ื•ืช. ื”ื“ื•ื’ืžืื•ืช ืœืขื™ืœ ื”ืžื‘ื•ืกืกื•ืช ืขืœ ื˜ื‘ืœืช ื”ื”ื–ืžื ื•ืช ืื™ื ืŸ ืžืžื—ื™ืฉื•ืช ื‘ืžื™ื•ื—ื“ ื‘ืžืงืจื” ื–ื”, ืื– ื‘ื•ืื• ื ืขื‘ื•ืจ ืœื˜ื‘ืœืช ื”ืžื•ืฆืจ ืžืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ AdventureWorks:

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ
ืžื” ื”ืจืขื™ื•ืŸ ืžืื—ื•ืจื™ ื—ื™ืคื•ืฉ ืคื ื™ื? ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉืœื›ืœ ืจื›ื™ื‘ ืกื™ื ื•ืŸ ืžื•ืฆื’ ืžืกืคืจ ื”ืจืฉื•ืžื•ืช ื”ืขื•ืžื“ื•ืช ื‘ืงืจื™ื˜ืจื™ื•ืŸ ื–ื” ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ืžืกื ื ื™ื ืฉื ื‘ื—ืจื• ื‘ื›ืœ ืฉืืจ ื”ืงื˜ื’ื•ืจื™ื•ืช.

ืœื“ื•ื’ืžื”, ืื ื ื‘ื—ืจ ืืช ืงื˜ื’ื•ืจื™ื™ืช ื”ืื•ืคื ื™ื™ื ื•ืืช ื”ืฆื‘ืข ื”ืฉื—ื•ืจ ื‘ื“ื•ื’ืžื” ื–ื•, ื”ื˜ื‘ืœื” ืชืฆื™ื’ ืจืง ืื•ืคื ื™ื™ื ืฉื—ื•ืจื™ื, ืืš:

  • ืขื‘ื•ืจ ื›ืœ ืงืจื™ื˜ืจื™ื•ืŸ ื‘ืงื‘ื•ืฆืช ื”ืงื˜ื’ื•ืจื™ื•ืช, ืžืกืคืจ ื”ืžื•ืฆืจื™ื ืžืื•ืชื” ืงื˜ื’ื•ืจื™ื” ื™ื•ืฆื’ ื‘ืฉื—ื•ืจ.
  • ืขื‘ื•ืจ ื›ืœ ืงืจื™ื˜ืจื™ื•ืŸ ืฉืœ ืงื‘ื•ืฆืช "ืฆื‘ืขื™ื", ื™ื•ืฆื’ ืžืกืคืจ ื”ืื•ืคื ื™ื™ื ื‘ืฆื‘ืข ื–ื”.

ื”ื ื” ื“ื•ื’ืžื” ืœืคืœื˜ ื”ืชื•ืฆืื” ืขื‘ื•ืจ ืชื ืื™ื ื›ืืœื”:

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ
ืื ืชื‘ื“ืงื• ื’ื ืืช ืงื˜ื’ื•ืจื™ื™ืช "ืœื‘ื•ืฉ", ื”ื˜ื‘ืœื” ืชืฆื™ื’ ื’ื ื‘ื’ื“ื™ื ืฉื—ื•ืจื™ื ืฉื ืžืฆืื™ื ื‘ืžืœืื™. ื’ื ืžืกืคืจ ื”ืžื•ืฆืจื™ื ื”ืฉื—ื•ืจื™ื ื‘ืกืขื™ืฃ "ืฆื‘ืข" ื™ื—ื•ืฉื‘ ืžื—ื“ืฉ ื‘ื”ืชืื ืœืชื ืื™ื ื”ื—ื“ืฉื™ื, ืจืง ื‘ืกืขื™ืฃ "ืงื˜ื’ื•ืจื™ื•ืช" ืฉื•ื ื“ื‘ืจ ืœื ื™ืฉืชื ื”... ืื ื™ ืžืงื•ื•ื” ืฉื”ื“ื•ื’ืžืื•ืช ื”ืืœื” ืžืกืคื™ืงื•ืช ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ืืœื’ื•ืจื™ืชื ื”ื—ื™ืคื•ืฉ ื”ืจื’ื™ืœ.

ื›ืขืช ื‘ื•ืื• ื ื“ืžื™ื™ืŸ ื›ื™ืฆื“ ื ื™ืชืŸ ืœื™ื™ืฉื ื–ืืช ืขืœ ื‘ืกื™ืก ื™ื—ืกื™. ื›ืœ ืงื‘ื•ืฆืช ืงืจื™ื˜ืจื™ื•ื ื™ื, ื›ื’ื•ืŸ ืงื˜ื’ื•ืจื™ื” ื•ืฆื‘ืข, ืชื“ืจื•ืฉ ืฉืื™ืœืชื” ื ืคืจื“ืช:

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

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ

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

ื‘ืขื™ื•ืช ืคืœื˜ ื•ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ
ืžื” ืจืข ื‘ืคืชืจื•ืŸ ื”ื–ื”? ื–ื” ืžืื•ื“ ืคืฉื•ื˜ - ื–ื” ืœื ืงื ื” ืžื™ื“ื” ื˜ื•ื‘. ื›ืœ ืžืงื˜ืข ืกื™ื ื•ืŸ ื“ื•ืจืฉ ืฉืื™ืœืชื” ื ืคืจื“ืช ืœื—ื™ืฉื•ื‘ ื›ืžื•ื™ื•ืช, ื•ืฉืื™ืœืชื•ืช ืืœื• ืื™ื ืŸ ื”ืงืœื•ืช ื‘ื™ื•ืชืจ. ื‘ื—ื ื•ื™ื•ืช ืžืงื•ื•ื ื•ืช, ืงื˜ื’ื•ืจื™ื•ืช ืžืกื•ื™ืžื•ืช ืขืฉื•ื™ื•ืช ืœื›ืœื•ืœ ื›ืžื” ืขืฉืจื•ืช ืงื˜ืขื™ ืกื™ื ื•ืŸ, ืžื” ืฉื™ื›ื•ืœ ืœื”ื™ื•ืช ื‘ืขื™ื™ืช ื‘ื™ืฆื•ืขื™ื ืจืฆื™ื ื™ืช.

ื‘ื“ืจืš ื›ืœืœ ืœืื—ืจ ื”ื”ืฆื”ืจื•ืช ื”ืœืœื• ืžืฆื™ืขื™ื ืœื™ ื›ืžื” ืคืชืจื•ื ื•ืช, ื›ืœื•ืžืจ:

  • ืฉืœื‘ ืืช ื›ืœ ืกืคื™ืจื•ืช ื”ื›ืžื•ื™ื•ืช ืœืฉืื™ืœืชื” ืื—ืช. ืžื‘ื—ื™ื ื” ื˜ื›ื ื™ืช ื–ื” ืืคืฉืจื™ ื‘ืืžืฆืขื•ืช ืžื™ืœืช ื”ืžืคืชื— UNION, ืื‘ืœ ื–ื” ืœื ื™ืขื–ื•ืจ ื”ืจื‘ื” ืœื‘ื™ืฆื•ืขื™ื - ืžืกื“ ื”ื ืชื•ื ื™ื ืขื“ื™ื™ืŸ ื™ืฆื˜ืจืš ืœื‘ืฆืข ื›ืœ ืื—ื“ ืžื”ืคืจื’ืžื ื˜ื™ื ืžืืคืก.
  • ื›ืžื•ื™ื•ืช ืžื˜ืžื•ืŸ. ื–ื” ืžื•ืฆืข ืœื™ ื›ืžืขื˜ ื‘ื›ืœ ืคืขื ืฉืื ื™ ืžืชืืจ ื‘ืขื™ื”. ื”ืื–ื”ืจื” ื”ื™ื ืฉื‘ื“ืจืš ื›ืœืœ ื–ื” ื‘ืœืชื™ ืืคืฉืจื™. ื ื ื™ื— ืฉื™ืฉ ืœื ื• 10 "ืคื ื™ื", ืฉืœื›ืœ ืื—ื“ ืžื”ื 5 ืขืจื›ื™ื. ื–ื”ื• ืžืฆื‘ ืžืื•ื“ "ืฆื ื•ืข" ืœืขื•ืžืช ืžื” ืฉื ื™ืชืŸ ืœืจืื•ืช ื‘ืื•ืชืŸ ื—ื ื•ื™ื•ืช ืžืงื•ื•ื ื•ืช. ื”ื‘ื—ื™ืจื” ื‘ืืœืžื ื˜ ืคืŸ ืื—ื“ ืžืฉืคื™ืขื” ืขืœ ื”ื›ืžื•ื™ื•ืช ื‘-9 ืื—ืจื™ื, ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ืขื‘ื•ืจ ื›ืœ ืฉื™ืœื•ื‘ ืฉืœ ืงืจื™ื˜ืจื™ื•ื ื™ื ื”ื›ืžื•ื™ื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืฉื•ื ื•ืช. ื‘ื“ื•ื’ืžื” ืฉืœื ื•, ื™ืฉ ืกื”"ื› 50 ืงืจื™ื˜ืจื™ื•ื ื™ื ืฉื”ืžืฉืชืžืฉ ื™ื›ื•ืœ ืœื‘ื—ื•ืจ, ื›ืš ืฉื™ื”ื™ื• 250 ืฉื™ืœื•ื‘ื™ื ืืคืฉืจื™ื™ื. ืื™ืŸ ืžืกืคื™ืง ื–ื™ื›ืจื•ืŸ ืื• ื–ืžืŸ ื›ื“ื™ ืœืžืœื ืžืขืจืš ื›ื–ื” ืฉืœ ื ืชื•ื ื™ื. ื›ืืŸ ืืชื” ื™ื›ื•ืœ ืœื”ืชื ื’ื“ ื•ืœื•ืžืจ ืฉืœื ื›ืœ ื”ืฉื™ืœื•ื‘ื™ื ื”ื ืืžื™ืชื™ื™ื ื•ื”ืžืฉืชืžืฉ ืจืง ืœืขืชื™ื ืจื—ื•ืงื•ืช ื‘ื•ื—ืจ ื™ื•ืชืจ ืž-5-10 ืงืจื™ื˜ืจื™ื•ื ื™ื. ื›ืŸ, ืืคืฉืจ ืœืขืฉื•ืช ื˜ืขื™ื ื” ืขืฆืœื ื™ืช ื•ืœืื—ืกืŸ ื›ืžื•ืช ืฉืœ ืจืง ืžื” ืฉื ื‘ื—ืจ ืื™ ืคืขื, ืื‘ืœ ื›ื›ืœ ืฉื™ื”ื™ื• ื™ื•ืชืจ ืžื‘ื—ืจ, ื›ืš ืžื˜ืžื•ืŸ ื›ื–ื” ื™ื”ื™ื” ืคื—ื•ืช ื™ืขื™ืœ ื•ื‘ืขื™ื•ืช ื–ืžืŸ ื”ืชื’ื•ื‘ื” ื™ื”ื™ื• ืžื•ืจื’ืฉื•ืช ื™ื•ืชืจ (ื‘ืžื™ื•ื—ื“ ืื ืžืขืจืš ื”ื ืชื•ื ื™ื ืžืฉืชื ื” ื‘ืื•ืคืŸ ืงื‘ื•ืข).

ืœืžืจื‘ื” ื”ืžื–ืœ, ืœื‘ืขื™ื” ื›ื–ื• ื™ืฉ ื›ื‘ืจ ืžื–ืžืŸ ืคืชืจื•ื ื•ืช ื™ืขื™ืœื™ื ืœืžื“ื™ ืฉืขื•ื‘ื“ื™ื ื‘ืื•ืคืŸ ืฆืคื•ื™ ืขืœ ื›ืžื•ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉืœ ื ืชื•ื ื™ื. ืขื‘ื•ืจ ื›ืœ ืื—ืช ืžื”ืืคืฉืจื•ื™ื•ืช ื”ืœืœื•, ื”ื’ื™ื•ื ื™ ืœื—ืœืง ืืช ื”ื—ื™ืฉื•ื‘ ืžื—ื“ืฉ ืฉืœ ื”ื™ื‘ื˜ื™ื ื•ืงื‘ืœืช ื“ืฃ ื”ืชื•ืฆืื•ืช ืœืฉืชื™ ืงืจื™ืื•ืช ืžืงื‘ื™ืœื•ืช ืœืฉืจืช ื•ืœืืจื’ืŸ ืืช ืžืžืฉืง ื”ืžืฉืชืžืฉ ื‘ืฆื•ืจื” ื›ื–ื• ืฉื˜ืขื™ื ืช ื”ื ืชื•ื ื™ื ืœืคื™ ื”ื™ื‘ื˜ื™ื "ืœื ืชืคืจื™ืข" ืœืชืฆื•ื’ื” ืฉืœ ืชื•ืฆืื•ืช ื—ื™ืคื•ืฉ.

  • ืงืจื ืœื—ื™ืฉื•ื‘ ืžื—ื“ืฉ ืžืœื ืฉืœ "ื”ื™ื‘ื˜ื™ื" ืœืขืชื™ื ืจื—ื•ืงื•ืช ื›ื›ืœ ื”ืืคืฉืจ. ืœื“ื•ื’ืžื”, ืืœ ืชื—ืฉื‘ ื”ื›ืœ ืžื—ื“ืฉ ื‘ื›ืœ ืคืขื ืฉืงืจื™ื˜ืจื™ื•ื ื™ ื”ื—ื™ืคื•ืฉ ืžืฉืชื ื™ื, ืืœื ืžืฆื ืืช ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ื”ืชื•ืฆืื•ืช ื”ืชื•ืืžื•ืช ืืช ื”ืชื ืื™ื ื”ื ื•ื›ื—ื™ื™ื ื•ืชื‘ืงืฉ ืžื”ืžืฉืชืžืฉ ืœื”ืฆื™ื’ ืื•ืชืŸ - "ื ืžืฆืื• 1425 ืจืฉื•ืžื•ืช, ื”ืฆื’?" ื”ืžืฉืชืžืฉ ื™ื›ื•ืœ ืœื”ืžืฉื™ืš ืœืฉื ื•ืช ืืช ืžื•ื ื—ื™ ื”ื—ื™ืคื•ืฉ ืื• ืœืœื—ื•ืฅ ืขืœ ื›ืคืชื•ืจ "ื”ืฆื’". ืจืง ื‘ืžืงืจื” ื”ืฉื ื™ ื™ื‘ื•ืฆืขื• ื›ืœ ื”ื‘ืงืฉื•ืช ืœืงื‘ืœืช ืชื•ืฆืื•ืช ื•ื—ื™ืฉื•ื‘ ืžื—ื“ืฉ ืฉืœ ื›ืžื•ื™ื•ืช ืขืœ ื›ืœ "ื”ื”ื™ื‘ื˜ื™ื". ื‘ืžืงืจื” ื–ื”, ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ื‘ืงืœื•ืช, ืชืฆื˜ืจื›ื• ืœื”ืชืžื•ื“ื“ ืขื ื‘ืงืฉื” ืœืงื‘ืœืช ืกืš ื”ืชื•ืฆืื•ืช ื•ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœื”. ืฉื™ื˜ื” ื–ื• ื ื™ืชืŸ ืœืžืฆื•ื ื‘ื—ื ื•ื™ื•ืช ืžืงื•ื•ื ื•ืช ืงื˜ื ื•ืช ืจื‘ื•ืช. ื‘ืจื•ืจ ืฉื–ื• ืœื ืชืจื•ืคืช ืคืœื ืœื‘ืขื™ื” ื”ื–ื•, ืื‘ืœ ื‘ืžืงืจื™ื ืคืฉื•ื˜ื™ื ื”ื™ื ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืคืฉืจื” ื˜ื•ื‘ื”.
  • ื”ืฉืชืžืฉ ื‘ืžื ื•ืขื™ ื—ื™ืคื•ืฉ ื›ื“ื™ ืœืžืฆื•ื ืชื•ืฆืื•ืช ื•ืœืกืคื•ืจ ื”ื™ื‘ื˜ื™ื, ื›ื’ื•ืŸ Solr, ElasticSearch, Sphinx ื•ืื—ืจื™ื. ื›ื•ืœื ื ื•ืขื“ื• ืœื‘ื ื•ืช "ื”ื™ื‘ื˜ื™ื" ื•ืœืขืฉื•ืช ื–ืืช ื‘ืฆื•ืจื” ื™ืขื™ืœื” ืœืžื“ื™ ื‘ืฉืœ ื”ืžื“ื“ ื”ื”ืคื•ืš. ืื™ืš ืคื•ืขืœื™ื ืžื ื•ืขื™ ื—ื™ืคื•ืฉ, ืœืžื” ื‘ืžืงืจื™ื ื›ืืœื” ื”ื ื™ืขื™ืœื™ื ื™ื•ืชืจ ืžืžืื’ืจื™ ืžื™ื“ืข ื›ืœืœื™ื™ื, ืื™ืœื• ืฉื™ื˜ื•ืช ื•ืžืœื›ื•ื“ื•ืช ื™ืฉ - ื–ื” ื ื•ืฉื ืœืžืืžืจ ื ืคืจื“. ื›ืืŸ ืื ื™ ืจื•ืฆื” ืœื”ืกื‘ ืืช ืชืฉื•ืžืช ืœื‘ื›ื ืœื›ืš ืฉืžื ื•ืข ื”ื—ื™ืคื•ืฉ ืื™ื ื• ื™ื›ื•ืœ ืœื”ื•ื•ืช ืชื—ืœื™ืฃ ืœืื—ืกื•ืŸ ื”ื ืชื•ื ื™ื ื”ืจืืฉื™, ื”ื•ื ืžืฉืžืฉ ื›ืชื•ืกืคืช: ื›ืœ ืฉื™ื ื•ื™ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืจืืฉื™ ื”ืจืœื•ื•ื ื˜ื™ ืœื—ื™ืคื•ืฉ ืžืกื•ื ื›ืจืŸ ืœืื™ื ื“ืงืก ื”ื—ื™ืคื•ืฉ; ืžื ื•ืข ื”ื—ื™ืคื•ืฉ ื‘ื“ืจืš ื›ืœืœ ืžืงื™ื™ื ืื™ื ื˜ืจืืงืฆื™ื” ืจืง โ€‹โ€‹ืขื ืžื ื•ืข ื”ื—ื™ืคื•ืฉ ื•ืื™ื ื• ื ื™ื’ืฉ ืœืžืกื“ ื”ื ืชื•ื ื™ื ื”ืจืืฉื™. ืื—ืช ื”ื ืงื•ื“ื•ืช ื”ื—ืฉื•ื‘ื•ืช ื‘ื™ื•ืชืจ ื›ืืŸ ื”ื™ื ื›ื™ืฆื“ ืœืืจื’ืŸ ืืช ื”ืกื ื›ืจื•ืŸ ื”ื–ื” ื‘ืฆื•ืจื” ืžื”ื™ืžื ื”. ื”ื›ืœ ืชืœื•ื™ ื‘ื“ืจื™ืฉื•ืช "ื–ืžืŸ ื”ืชื’ื•ื‘ื”". ืื ื”ื–ืžืŸ ื‘ื™ืŸ ืฉื™ื ื•ื™ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืจืืฉื™ ืœ"ื”ืชื’ืœื•ืชื•" ื‘ื—ื™ืคื•ืฉ ืื™ื ื• ืงืจื™ื˜ื™, ื ื™ืชืŸ ืœื™ืฆื•ืจ ืฉื™ืจื•ืช ืฉืžื—ืคืฉ ื›ืœ ื›ืžื” ื“ืงื•ืช ืจืฉื•ืžื•ืช ืฉื”ืฉืชื ื• ืœืื—ืจื•ื ื” ื•ืžืื ื“ืงืก ืื•ืชืŸ. ืื ืืชื” ืจื•ืฆื” ืืช ื–ืžืŸ ื”ืชื’ื•ื‘ื” ื”ืงืฆืจ ื‘ื™ื•ืชืจ ื”ืืคืฉืจื™, ืืชื” ื™ื›ื•ืœ ืœื™ื™ืฉื ืžืฉื”ื• ื›ืžื• ืชื™ื‘ืช ื“ื•ืืจ ื™ื•ืฆื ืฉืœ ืขืกืงืื•ืช ืœืฉืœื•ื— ืขื“ื›ื•ื ื™ื ืœืฉื™ืจื•ืช ื”ื—ื™ืคื•ืฉ.

ืžืžืฆืื™ื

  1. ื™ื™ืฉื•ื ื”ื”ื—ืœืคื” ื‘ืฆื“ ื”ืฉืจืช ื”ื•ื ืกื™ื‘ื•ืš ืžืฉืžืขื•ืชื™ ื•ื”ื’ื™ื•ื ื™ ืจืง ืขื‘ื•ืจ ืžืขืจื›ื™ ื ืชื•ื ื™ื ืฉื’ื“ืœื™ื ื‘ืžื”ื™ืจื•ืช ืื• ืคืฉื•ื˜ ื’ื“ื•ืœื™ื. ืื™ืŸ ืžืชื›ื•ืŸ ืžื“ื•ื™ืง ืœื—ืœื•ื˜ื™ืŸ ืœืื™ืš ืœื”ืขืจื™ืš "ื’ื“ื•ืœ" ืื• "ืฆื•ืžื— ืžื”ืจ", ืื‘ืœ ื”ื™ื™ืชื™ ืคื•ืขืœ ืœืคื™ ื”ื’ื™ืฉื” ื”ื–ื•:
    • ืื ืงื‘ืœืช ืื•ืกืฃ ืฉืœื ืฉืœ ื ืชื•ื ื™ื, ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ื–ืžืŸ ื”ืฉืจืช ื•ื”ืขื‘ืจืช ื”ืจืฉืช, ืชื•ืืžืช ืืช ื“ืจื™ืฉื•ืช ื”ื‘ื™ืฆื•ืขื™ื ื‘ื“ืจืš ื›ืœืœ, ืื™ืŸ ื˜ืขื ืœื™ื™ืฉื ืืช ื”ื”ื—ืœืคื” ื‘ืฆื“ ื”ืฉืจืช.
    • ื™ืชื›ืŸ ืžืฆื‘ ืฉื‘ื• ืœื ืฆืคื•ื™ื•ืช ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื ื‘ื–ืžืŸ ื”ืงืจื•ื‘, ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ืžืขื˜ ื ืชื•ื ื™ื, ืืš ืื™ืกื•ืฃ ื”ื ืชื•ื ื™ื ื’ื“ืœ ื›ืœ ื”ื–ืžืŸ. ืื ืงื‘ื•ืฆืช ื ืชื•ื ื™ื ื›ืœืฉื”ื™ ื‘ืขืชื™ื“ ืœื ืชืขืžื•ื“ ืขื•ื“ ื‘ื ืงื•ื“ื” ื”ืงื•ื“ืžืช, ืขื“ื™ืฃ ืœื”ืชื—ื™ืœ ืืช ื”ื”ื—ืœืคื” ืžื™ื“.
  2. ืื ืื™ืŸ ื“ืจื™ืฉื” ืงืคื“ื ื™ืช ืžืฆื“ ื”ืขืกืง ืœื”ืฆื™ื’ ืืช ืกืš ื”ืชื•ืฆืื•ืช ืื• ืœื”ืฆื™ื’ ืžืกืคืจื™ ืขืžื•ื“ื™ื, ื•ืœืžืขืจื›ืช ืฉืœื›ื ืื™ืŸ ืžื ื•ืข ื—ื™ืคื•ืฉ, ืขื“ื™ืฃ ืœื ืœื™ื™ืฉื ืืช ื”ื ืงื•ื“ื•ืช ื”ืœืœื• ื•ืœืฉืงื•ืœ ืืคืฉืจื•ืช ืžืก' 2.
  3. ืื ื™ืฉื ื” ื“ืจื™ืฉื” ื‘ืจื•ืจื” ืœื—ื™ืคื•ืฉ ื”ื™ื‘ื˜ื™, ื™ืฉ ืœืš ืฉืชื™ ืืคืฉืจื•ื™ื•ืช ืžื‘ืœื™ ืœื”ืงืจื™ื‘ ืืช ื”ื‘ื™ืฆื•ืขื™ื:
    • ืื™ืŸ ืœื—ืฉื‘ ืžื—ื“ืฉ ืืช ื›ืœ ื”ื›ืžื•ื™ื•ืช ื‘ื›ืœ ืคืขื ืฉืงืจื™ื˜ืจื™ื•ื ื™ ื”ื—ื™ืคื•ืฉ ืžืฉืชื ื™ื.
    • ื”ืฉืชืžืฉ ื‘ืžื ื•ืขื™ ื—ื™ืคื•ืฉ ื›ื’ื•ืŸ Solr, ElasticSearch, Sphinx ื•ืื—ืจื™ื. ืื‘ืœ ืฆืจื™ืš ืœื”ื‘ื™ืŸ ืฉื”ื•ื ืœื ื™ื›ื•ืœ ืœื”ื•ื•ืช ืชื—ืœื™ืฃ ืœืžืกื“ ื”ื ืชื•ื ื™ื ื”ืจืืฉื™, ื•ื™ืฉ ืœื”ืฉืชืžืฉ ื‘ื• ื›ืชื•ืกืคืช ืœืื—ืกื•ืŸ ื”ืจืืฉื™ ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช ื—ื™ืคื•ืฉ.
  4. ื›ืžื• ื›ืŸ, ื‘ืžืงืจื” ืฉืœ ื—ื™ืคื•ืฉ ืคื ื™ื, ื”ื’ื™ื•ื ื™ ืœืคืฆืœ ืืช ืฉืœื™ืคืช ื“ืฃ ืชื•ืฆืื•ืช ื”ื—ื™ืคื•ืฉ ื•ืืช ื”ืกืคื™ืจื” ืœืฉืชื™ ื‘ืงืฉื•ืช ืžืงื‘ื™ืœื•ืช. ืกืคื™ืจืช ื›ืžื•ื™ื•ืช ืขืฉื•ื™ื” ืœื”ื™ืžืฉืš ื–ืžืŸ ืจื‘ ื™ื•ืชืจ ืžืืฉืจ ื”ืฉื’ืช ืชื•ืฆืื•ืช, ื‘ืขื•ื“ ืฉื”ืชื•ืฆืื•ืช ื—ืฉื•ื‘ื•ืช ื™ื•ืชืจ ืœืžืฉืชืžืฉ.
  5. ืื ืืชื” ืžืฉืชืžืฉ ื‘ืžืกื“ ื ืชื•ื ื™ื ืฉืœ SQL ืœื—ื™ืคื•ืฉ, ื›ืœ ืฉื™ื ื•ื™ ืงื•ื“ ื”ืงืฉื•ืจ ืœื—ืœืง ื–ื” ืฆืจื™ืš ืœื”ื™ื‘ื“ืง ื”ื™ื˜ื‘ ืขื‘ื•ืจ ื‘ื™ืฆื•ืขื™ื ื‘ื›ืžื•ืช ื”ื ืชื•ื ื™ื ื”ืžืชืื™ืžื” (ื”ื—ื•ืจื’ืช ืžื”ื ืคื— ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื”ื—ื™). ื›ืžื• ื›ืŸ, ืžื•ืžืœืฅ ืœื”ืฉืชืžืฉ ื‘ื ื™ื˜ื•ืจ ื–ืžืŸ ื‘ื™ืฆื•ืข ืฉืื™ืœืชื” ื‘ื›ืœ ื”ืžื•ืคืขื™ื ืฉืœ ื‘ืกื™ืก ื”ื ืชื•ื ื™ื, ื•ื‘ืžื™ื•ื—ื“ ื‘"ื—ื™". ื’ื ืื ื”ื›ืœ ื”ื™ื” ื‘ืกื“ืจ ืขื ืชื•ื›ื ื™ื•ืช ืฉืื™ืœืชื•ืช ื‘ืฉืœื‘ ื”ืคื™ืชื•ื—, ื›ื›ืœ ืฉื ืคื— ื”ื ืชื•ื ื™ื ื’ื“ืœ, ื”ืžืฆื‘ ืขืฉื•ื™ ืœื”ืฉืชื ื•ืช ื‘ืื•ืคืŸ ื ื™ื›ืจ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”