áá»áœááºá¯ááºááá¯á·ááŸáá·áºáááºážááŸá®ážáá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážá¡á¬ážáá¯á¶ážááŸá áá¯á¶ááŸááºá¡ááŒá±á¡áá±áá»á¬ážáá²ááŸáá áºáá¯ááŸá¬ á¡áá»áá¯á·áá±á¬áááºááŸááºáá»ááºáá»á¬ážá¡ááá¯ááºáž áá±áá¬ááá¯ááŸá¬ááœá±ááŒá®áž áááºáááœááºáá°áá±á¬áá¯á¶á á¶ááŒáá·áº ááŒáááŒááºážááŒá áºáááºá á¡áá»áá¯ážá¡á á¬ážááœá²ááŒááºážá á¡á¯ááºá á¯ááœá²á·ááŒááºážááŸáá·áº á á¬áá»ááºááŸá¬áááºááŒááºážá¡ááœáẠáá±á¬ááºáááºááœá±ážáá»ááºá áá¬áá»á¬ážáááºáž ááŸáááá¯ááºáá«áááºá á¡áá¯ááºááẠáá®á¡áá¯áá®á¡á á¡áá±ážá¡ááœá²ááŒá áºáá±á¬áºáááºáž áááºážááá¯ááŒá±ááŸááºážáá±á¬á¡áá«ááœáẠdeveloper á¡áá»á¬ážá¡ááŒá¬ážááẠá¡ááŸá¬ážáá»á¬ážá áœá¬ááŒá¯áá¯ááºááŒááŒá®áž áá±á¬ááºááá¯ááºážááœáẠáá¯ááºáá¯ááºá áœááºážá¡á¬ážááᯠááááá¯ááºá á±áááºá á€ááŒá¿áá¬ááá¯ááŒá±ááŸááºážááẠá¡áá»áá¯ážáá»áá¯ážáá±á¬ááœá±ážáá»ááºá áá¬áá»á¬ážááᯠá ááºážá á¬ážááŒá®áž á¡áááá±á¬ááºáá¯á¶ážá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááᯠááœá±ážáá»ááºáááºá¡ááœáẠá¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááᯠáá±ážááœá²ááŒáá«á áá¯á·á
á á¬áá»ááºááŸá¬ááœá±ážáá»ááºááŸá¯ áá¶áá«áẠá
á¡ááá¯ážááŸááºážáá¯á¶ážááœá±ážáá»ááºááŸá¯ááŸá¬ áááºážáááá¹ááááºáá¯á¶á á¶ááŒáá·áº ááŸá¬ááœá±ááŸá¯ááááºáá»á¬ážááᯠáá áºáá»ááºááŸá¬áá»ááºáž áá áºáá»ááºááŸá¬áá»ááºážááŒáááŒááºážááŒá áºáááºá
ááá·áºá¡ááá®áá±ážááŸááºážááẠáááºá
ááºáá±áá¬áá±á·á
áºááᯠá¡áá¯á¶ážááŒá¯áááºááá¯áá«á
áá¯á·á á€ááá
á¹á
ááœááºá á€áá±á¬ááºááœáẠá¡áá»ááºá¡áááºááŒááááºá áááºááẠSQL queries ááŸá
áºáá¯ááᯠáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááº-
- áááºááŸáá á¬áá»ááºááŸá¬á¡ááœáẠá¡áááºážáá»á¬ážááá°áá«á
- ááŸá¬ááœá±ááŸá¯á á¶ááŸá¯ááºážáá»á¬ážááŸáá·áº áááºááá¯ááºááá·áº á á¬ááŒá±á¬ááºážá á¯á á¯áá±á«ááºážááᯠááœááºáá»ááºáá« - áááºážááẠá á¬áá»ááºááŸá¬áá»á¬ážááᯠááŒáááẠááá¯á¡ááºáááºá
ááá°áá¬á¡áá±áá²á· MS SQL áá±áá¬áá±á·á
áºááᯠá
ááºážáááºá¡áá¯á¶ážááŒá¯áá¬ážáá²á· ááááá¯á¶ážáá±ážááœááºážááᯠááŒáá·áºáá¡á±á¬ááº
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.
query runtime ááœáẠSET STATISTICS IO ON command ááᯠrun ááŒááºážááŒáá·áº query áá áºáá¯á á®á¡ááœáẠI/O ááááºážááááºážá¡áá»ááºá¡áááºáá»á¬ážááᯠááẠááá°ááá¯ááºáá«áááºá
á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ á¡á á®á¡á ááºá០áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá á¡áááºážá¡ááŒá áº-á¡áá»á¬ážáá¯á¶áž ááœá±ážáá»ááºááŸá¯ááŸá¬ áááºážááŒá áºááá¬ážá á¡áááºážá¡á¬ážáá¯á¶ážááᯠááá·áºááœááºážáá¬ážáá±á¬ áááºá áœá²á¡ááá¯áẠá á®áááºááŒá áºáááºá ááŒá¿áá¬ááŸá¬ ááá¬ážááœáẠá¡áááºážáá»á¬ážáá»á¬ážáá±áá±á á á®ááẠ"ááá¯áááº" áá¬áá±ááŒá áºáááºá áááºááœá±á·ááœááºá ááá¯ááá¯á·áá±á¬á¡ááŒá±á¡áá±áá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááá·áºáááºá ááá¯á·ááŒá±á¬áá·áº áááºáá±á¬ááºážáááºá áœá²ááœáẠá¡ááœáŸááºážáá áºáá¯ááá·áºáᬠá¡áááºážá¡ááŒá áºáá¯á¶ážá áœá²ááŸá¯ ááŒá±á¬ááºážáá²ááœá¬ážááŒááºážááŸááááŸá ááŒáá·áºááŒáá«á áá¯á·á
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 á¡ááœááºááẠáááá¡áá±á¡áá¬ážááœááºáááŸááá±á¬ááŒá±á¬áá·áº query ááẠá¡ááœáŸááºážáá áºáá¯áá¯á¶ážááá¯ááŒááºááœá¬ážáááºáá°áá±á¬á¡áá»ááºááŸá¬ á¡á¶á·ááŒá áá¬ááá¯ááºáá±á SubTotal á¡ááœááºááœáẠá¡ááŒá¬ážáá±á¬ á¡ááœáŸááºážáá»á¬ážááᯠáá±á«ááºážááá·áºááŒááºážááŒáá·áº ááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯ááºááŒá®áž ááááºá¡áá±ááŒáá·áº áááºážááẠáá¯áá¹áá áá áá¯áᬠáááºááŸá¯ááá¯ááºáááºááŒá áºáááºá
ááá¬ááá±ááœááºááẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá áá±á¬ááºáááºá¥ááá¬á¡áááºážáááºááᯠáááºáá±ážááá¯ááºáá±á¬áºáááºáž á¡ááŸá áºáá¬áááŸá¬ á¡áá°áá°áááºááŒá áºáááº- áá±áá¬á¡ááá¯ááºážá¡á ááᯠáááºáá¶áááŸáááŒááºážááŸáá·áº á á¯á á¯áá±á«ááºážááá¬áááᯠáá±ááœááºááŒááºážááŸá¬ á¡ááŒá±áá¶á¡á¬ážááŒáá·áº ááá°áá®áá±á¬ áá±á¬ááºážááá¯ááŸá¯ááŸá áºáá¯ááŒá áºáááºáááŸáá·áº áá áºáá¯á á®ááẠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºáááºá¡ááœáẠáááºážáááá¯ááºááá¯ááºá¡á á®á¡áá¶áá»á¬áž ááá¯á¡ááºáááºá áá±áá°áá»á¡á¬ážááŒáá·áºá áá±ážááœááºážááŸá áºáá¯áá¯á¶ážá¡ááœáẠá¡áá®á¡áá»áŸ áá±á¬ááºážá áœá¬á¡áá¯ááºáá¯ááºááá¯ááºáá±á¬ á¡ááœáŸááºážááááºážáá»á¬áž áá±á«ááºážá ááºááŸá¯ááᯠáááºááŸá¬ááœá±á·ááá¯ááºáááºááá¯ááºáá«á
ááá¯á·ááŒá±á¬áá·áºá ááá¯ááá¯á·áá±á¬ááŸá¬ááœá±ááŸá¯ááŒá±ááŸááºážáá»ááºááᯠáá±á¬áºáá¯ááºáá¬ááœáẠááŸááºážáááºážááá·áºáá±á¬ á¡áá±ážááŒá®ážáá±á¬ááá¯á¡ááºáá»ááºáá»á¬ážáá²ááŸáá áºáá¯ááŸá¬ ááœá±á·ááŸáááá·áºá¡áá¬ááá¹áá¯á¡áá±á¡ááœááºááᯠááŒáá·áºááŸá¯ááẠáá¯ááºáááºážáá áºáá¯á¡ááœáẠá¡ááŸááºááááºá¡áá±ážááŒá®ážáááºááŸáá ááá¯ááºáᬠáááŒá¬áá ááŒá áºáááºáá«áááºá á á¬áá»ááºááŸá¬áá¶áá«ááºáá»á¬ážá¡ááá¯áẠáááºážááŒá±á¬ááºážááŒááŒááºážááẠá¡ááœááºáá»ááºážááŒá±á¬ááºážáá±á¬ áááºáááºáá áºáá¯ááŒá áºááá·áº ááŒá±ááŸááºážáá»ááºáá áºáá¯ááŒá áºááŒá®ážá á á¬áá»ááºááŸá¬á¡áá»á¬ážá á¯ááẠâáá±á¬ááºá á¬áá»ááºááŸá¬ááá¯á· ááœá¬ážáá«â ááŸáá·áºáá°áá±á¬ááŒá±á¬áá·áº ááŒá áºáááºá
á á¬áá»ááºááŸá¬ááœá±ážáá»ááºááŸá¯ áá¶áá«áẠá
ááœá±á·ááŸáááá·áºá¡áá¬ááá¹áá¯á á¯á á¯áá±á«ááºážá¡áá±á¡ááœááºááᯠáá¯á¶ážá áœá²áá°áá»á¬ážá ááá¯áá áá¯ááºááŒá±á¬ááºáž áá°áááŒáá«á áá¯á·á ááŸá¬ááœá±ááŸá¯á á¬áá»ááºááŸá¬ááᯠááá¯ážááŸááºážá¡á±á¬áẠááŒáá¯ážá á¬ážááŒáá«á áá¯á·á
á¡ááŸááºááŸá¬á ááŒá±á¬ááºážáá²ááœá¬ážáá±á¬ áá
áºáá¯áááºážáá±á¬á¡áá¬ááŸá¬ áááºááŸááºáá¬ážáá±á¬ á
á¬áá»ááºááŸá¬áá¶áá«ááºáá»á¬ážááá¯á· ááœá¬ážáá¬ááẠáááºážáááºážáááŸááá±á¬á·áá²á ááá¯ááá¬ážááẠáááºážááá¯ááŒááááºá¡ááœáẠáááºáá»áŸááŸáááá¯ááºáááºááᯠááááŸááááºáááá¯á¡ááºáá±á¬á·áá«á ááá¯á·áá±á¬áºáá±ážááœááºážáá±á«áºáá¬ááẠ- áá±á¬ááºá
á¬áá»ááºááŸá¬á¡ááœááºáá±áá¬ááŸááááŸá (âNextâ link ááá¯ááŸááºáááºá
áœá¬ááŒááááºá¡ááœááº) ááá¬ážáááºáááºááá¯á·ááááááºážá
á¡ááŒá±ááẠá¡ááœááºááá¯ážááŸááºážáá«áááº- áá±á¬áºááŒáááºá¡ááœáẠááá¯á¡ááºáááºááẠááá¯ááá¯áá±á¬ ááŸááºáááºážáá áºáá¯ááᯠáá±áá¬áá±á·á áºá០áááºáááºááŸá¯ááá¯ááºááŒá®ážá ဠâá¡ááá¯áá±á¬ááºážâ ááŸááºáááºážá áá«áááºááŸá¯ááẠáá±á¬ááºá¡ááá¯ááºážáá áºáá¯ááŸááááŸáááᯠááŒááááºááŒá áºáááºá á€áááºážá¡á¬ážááŒáá·áºá áá±áá¬á á¬áá»ááºááŸá¬áá áºáá»ááºááŸá¬ááᯠáááŸáááẠáá±á¬ááºážááá¯áá»ááºáá áºáá¯áᬠáá¯ááºáá±á¬ááºááẠááá¯á¡ááºááŒá®áž áááºážááẠá áœááºážáá±á¬ááºáááºááᯠáááááá¬áᬠááá¯ážáááºá á±ááŒá®áž áááºážáá²á·ááá¯á·áá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¶á·ááá¯ážááẠááá¯ááá¯ááœááºáá°á á±áááºá áá»áœááºá¯ááºááááºááœá±á·ááœááºá á á¯á á¯áá±á«ááºážááŸááºáááºážá¡áá±á¡ááœááºááá¯áá±ááœááºáááºááŒááºážááá¯áá±á¬á¡áá«ááááºáá»á¬ážáá±ážááá¯á·ááŸá¯ááᯠ4-5 ááŒáááºááŒááºáááºá á±áááºá
á€áá»ááºážáááºááŸá¯á¡ááœáẠá¡áá¯á¶ážááŒá¯áá°ááŒá¬ážáá¶ááœá±ážáá»ááºá áá¬á¡áá»á¬ážá¡ááŒá¬ážááŸááááº- á¡áááºááá°áá¬ááœááºáá²á·ááá¯á· "back" ááŸáá·áº "forward" commandsá ááŒááá¬ážáá±á¬ááááºáá»á¬ážááœáẠá¡ááá¯ááºážá¡áá áºáá áºáá¯ááᯠááá¯ážááá¯ážááŸááºážááŸááºážááá·áºááœááºážáá±ážááá·áº "load more" ááá¯ááºáá áºáá¯á á¡áá¯ááºáá¯ááºáá±á¬ "á¡áá¯á¶ážáááŸá scroll"á "load more" "ááááá¬áááœááºá ááá¯á·áá±á¬áºáá±á¬ááºá¡ááá¯ááºážááá¯áááŸááááºá¡áá»ááºááŒááŸá¯áááºá¡áá¯á¶ážááŒá¯áá°ááŸááŒááá¬ážáá±á¬ááááºá¡á¬ážáá¯á¶ážááá¯á¡áá¯á¶ážá¡ááááœáŸá±á·áááºááŒá áºáááºá á¡ááŒááºá¡á¬áá¯á¶ááŒá±ááŸááºážáááºáž áááºááá¯á·áááºááŒá áºá á± áá±áá¬ááá°áá¬áá°ááŒááºážáááá¬áááẠá¡áá°áá°áááºááŒá áºáááºá
á á¬áá»ááºááŸá¬á¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá ááœá²ááŒá¬ážáá»ááºáá»á¬áž
á¡áááºáá±á¬áºááŒáá« á á¯á¶á ááºážááŸá¯ááá°áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááẠááááºá¡áááºážáá»á¬ážááŸáá·áº á¡áááºážáááºáá»áŸááŒááºáááẠááá¯á¡ááºááŒá±á¬ááºáž á á¯á¶á ááºážááŸá¯ááá¯ááºááá¯ááºá áááºááŸááºáá±á¬á¡áá«ááœáẠ"á¡á±á¬á·ááºááẠ+ áá±ááœááºááŒááºáž" áá»ááºážáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áááºá ááááŠážá áœá¬á á€ááá á¹á ááœáẠparameter passing ááá¯áááºáá²á·ááá¯á·á á¯á ááºážáááºá¡áá±á¬ááºážáá¯á¶ážááŒá áºáááºááá¯ááŒáá·áºááŒáá«á áá¯á·á áááºááœá±á·ááœááºá áá»áœááºá¯ááºááẠáááºážáááºážáá»á¬ážá áœá¬ááᯠááœá±á·áá²á·ááá«áááºá
- áá±á¬ááºážááá¯áá¬ážáá±á¬á á¬áá»ááºááŸá¬ (pageIndex)á á á¬áá»ááºááŸá¬á¡ááœááºá¡á á¬áž (pageSize) á á¡ááŸááºá ááºáá¶áá«ááºá
- ááŒááºáá±ážááá·áº ááááá¯á¶ážááŸááºáááºážá á¡ááŸááºá ááºáá¶áá«áẠ(startIndex)á áááẠ(áá±ááœááºááŸá¯) ááœáẠá¡áá»á¬ážáá¯á¶áž ááŸááºáááºážá¡áá±á¡ááœááºá
- ááŒááºáá±ážááá·áº áááááŸááºáááºážá áá¶áá«ááºá áẠ(startIndex)á ááŒááºáá±ážááá·áº áá±á¬ááºáá¯á¶ážááŸááºáááºážá áá¶áá«ááºá áẠ(endIndex)á
ááááá áºáá»ááºááœááºá á€á¡áá¬ááẠáá°ááááºážááŒá áºááŒá®áž ááœá¬ááŒá¬ážááŸá¯áááŸááᯠáááºááá±áááºá áá«áá±ááá·áº áá«á ááá¯ááºáá«áá°áž - á¡áááºááŒá±áá¯á¶ážáá²á· universal option á áá¯ááá (startIndexá count) ááŒá áºáá«áááºá á€á¡ááœáẠá¡ááŒá±á¬ááºážáááºážáá»á¬ážá áœá¬ ááŸááá«áááºá
- á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ +1 áááºááœáá·áºá¡áá±á¬ááºá¡áá¬ážáááºááŒááºážáááºážáááºážá¡ááœááºá pageIndex ááŸáá·áº pageSize áá«áá±á¬ áááááœá±ážáá»ááºááŸá¯ááẠá¡ááœááºá¡áááºáááŒá±áá«á á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá á¬áá»ááºááŸá¬áá áºáá¯áá»áŸáẠááá¯á·á Ạá á ááᯠááŒáááá¯áá«áááºá á¡áááºáá±á¬áºááŒáá« algorithm á¡áá ááá¯á¡ááºáááºááẠááŸááºáááºážáá áºáᯠáááºáá¶áááºááẠááá¯á¡ááºáááºá ဠâ+50â ááᯠáá¬áá¬ááœáẠá¡áá±á¬ááºá¡áááºááá±á¬áºáá«á áááá á¬áá»ááºááŸá¬á¡ááœáẠ1 á០1 á០ááŸááºáááºážáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· áá±á¬ááºážááá¯ááááºááŒá áºááŒá®áž áá¯áááá á¬áá»ááºááŸá¬ - 51 á០51 á áááºááá¯á·á¡ááœáẠááŸááºáááºážáá»á¬ážááᯠáá±á¬ááºážááá¯ááááºááŒá áºáááºá á á¬áá»ááºááŸá¬ 101 ááᯠáááºááŸááºááŒá®áž á á¬áá»ááºááŸá¬á¡ááœáŸááºážááᯠááá¯ážáá«á áá¯áááá á¬áá»ááºááŸá¬ 51 á០52 ááá¯á· ááŒááºááœá¬ážáá«áááºá ááá¯á·ááŒá±á¬áá·áºá áááááœá±ážáá»ááºááŸá¯ááœááºá áá±á¬ááºá á¬áá»ááºááŸá¬ááá¯á·ááœá¬ážááẠááá¯ááºáá áºáá¯ááᯠááŸááºáááºá áœá¬á¡áá±á¬ááºá¡áááºáá±á¬áºááẠáá áºáá¯áááºážáá±á¬áááºážáááºážááŸá¬ áá¬áá¬á០âá¡ááá¯â áá»ááºážááŒá±á¬ááºážááᯠá á áºááŒá±á¬áááºááŒá áºáááºáá á¡ááœááºá¡áá»á¯á¶ážáááºáá±á¬ ááœá²ááŒá¬ážááŸá¯ááŒá áºáááá·áºáááºá
- áá±áá¬áá±á·á áºá¡áá»á¬ážá á¯ááœáẠá á¯á¶á ááºážáá±ážááŒááºážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠááááááœá±ážáá»ááºááŸá¯ááŸá¬ á¡áááá¹áá«ááºáá¯á¶ážááááŸááá«á á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº áááºááẠáá±á¬ááºáá¯á¶ážááŸááºáááºážá á¡ááœáŸááºážááááºážááẠá¡áá±á¡ááœááºááᯠáá»á±á¬áºááœá¬ážáááºááá¯á¡ááºáá«áááºá endIndex á០startIndex ááᯠáá¯ááºááŒááºážááẠááá¯ážááŸááºážáá±á¬ ááááºážáááºá¹áá»á¬ áá¯ááºáá±á¬ááºáá»áẠááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáá±á¬áºáááºáž áááºážááẠá€áá±áá¬ááœáẠááœááºá áœá¬ áááá¯á¡ááºáá«á
ááá¯áá»áœááºá¯ááºááá¯á·ááẠâoffset + quantityâ ááŒáá·áº pageaging ááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážáá¡á¬ážáááºážáá»ááºáá»á¬ážááá¯áá±á¬áºááŒááá·áºáááº-
- áá±á¬ááºáááºááœá²á á¬áá»ááºááŸá¬áá áºáá¯á á®ááᯠááŒááºáááºááá°ááŒááºážááẠááááºá á¬áá»ááºááŸá¬ááẠááá¯ááá¯á á»á±ážááŒá®ážááŒá®áž ááŸá±ážááœá±ážáááºááŒá áºáá±á¬ááŒá±á¬áá·áº áá±áá¬áá±á·á áºááẠááŸá¬ááœá±ááŒááºážááŸáá·áº á á®ááŒááºážáááºááŸááºáá»ááºáá»á¬ážááŸáá·áºá¡áá® "á¡á ááŸ" ááŸááºáááºážá¡á¬ážáá¯á¶ážááᯠ"á¡á ááŸ" ááŒááºáááºážááẠááá¯á¡ááºáá±áá±ážáá±á¬ááŒá±á¬áá·áºá ááá¯á·áá±á¬áẠááá¯áá»ááºáá±á¬á¡ááá¯ááºážá¡á ááœáẠáááºááœá¬ážáááºááŒá áºáááºá
- DBMS á¡á¬ážáá¯á¶ážááẠá€áááºážáááºážááᯠáá¶á·ááá¯ážááá±ážááá¯ááºáá«á
á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá»á¬áž ááŸááá±á¬áºáááºáž áááºážááá¯á·áááºáááºáž áá á¯á¶áááºáá«á á€áá»ááºážáááºáááºážáá»á¬ážáá²á០ááááá¯á¶ážáááºážáááºážááᯠâkeyset pagingâ ááá¯á·ááá¯áẠâseek methodâ áá¯áá±á«áºááŒá®áž á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá áºáááº- á¡ááá¯ááºážáá áºáá¯ááᯠáááºáá¶áááŸáááŒá®ážáá±á¬ááºá á á¬áá»ááºááŸá¬ááŸá áá±á¬ááºáá¯á¶ážááŸááºáááºážááŸá áááºáááºáááºááá¯ážáá»á¬ážááᯠáááºááŸááºááááá¯ááºááŒá®áž ááá°ááẠáááºážááá¯á·ááᯠá¡áá¯á¶ážááŒá¯áá«á áá±á¬ááºá¡ááá¯ááºážá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá«áá±ážááœááºážááᯠáá¯ááºáá±á¬ááºáá²á·áááº-
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 ááᯠDBMS á¡áá»á¬ážá á¯ááœáẠááŸá±á¬ááºááŸá¬ážááááá«á áá»áœááºáá±á¬áºáááá±á¬ ááŒáœááºážáá»ááºááŸá¬ Tuple ááŸáá¯ááºážááŸááºááŸá¯áá»á¬ážááᯠá¡ááŒáá·áºá¡ááá±á¬ááºáá¶ááá·áº PostgreSQL ááŒá áºááŒá®áž á¡áááºáá«á¡ááŒá±á¡áá±á¡á¬áž "WHERE (OrderDate, SalesOrderID) < ('2014-06-29', 75074)" áᯠáá±ážáá¬ážááá¯ááºáá«áááºá á€á¡ááœááºááŸá áºáá¯áá«áá±á¬ áá±á«ááºážá ááºáá±á¬á·ááᯠáá±ážáá¬ážááá·áºá¡ááœááºá á€áá²á·ááá¯á·áá±á¬ áá±ážááŒááºážáá»ááºááẠá¡áá±á¬áºáá±áž ááœááºáá°ááá·áºáááºá
á¥ááá¬á ááœááºá áá¯ááááááºážááᯠááŸá¬ááá¯ááºáááºá
ááŸá¯ááºááœá±ážáá±á¬á á áºáá¯ááºááŒááºážá
áá¯ááºáááºážááᯠááŸá¯ááºááœá±ážá¡á±á¬áẠáá¯ááºááŒáá¡á±á¬ááºá á¡áœááºááá¯ááºážá ááá¯ážáá»á¬ážááŸáá°ááá¯ááºážááŸáá·áºá¡ááœááºáááºážááŸá®ážáá±á¬ faceted search áá¯áá±á«áºááœááºá¡áá±á¬ááºá¡áááºáá±á¬áºáááºááá¯á¡ááºáááºááá¯áá«á áá¯á·á á¡ááŸá¬á á¬ááá¬ážá¡áá±á«áºá¡ááŒá±áá¶áá¬ážáá±á¬ á¡áááºáá±á¬áºááŒáá« á¥ááá¬áá»á¬ážááẠá€ááá á¹á ááœáẠááá¯ááºáá±á¬áºáá¯á¶ááááºáááŸáá«á ááá¯á·ááŒá±á¬áá·áº AdventureWorks áá±áá¬áá±á·á áºá០áá¯ááºáá¯ááºááá¬ážááá¯á· ááŒá±á¬ááºážááŒáá·áºááŒáá«á áá¯á·á
áá»ááºááŸá¬áá»ááºážááá¯ááºááŸá¬ááœá±ááŸá¯áá±á¬ááºááœááºá á¡áá°á¡áááá¬áá²á á¡ááŸááºááŸá¬ á
á
áºáá¯ááºááá·áºááŒááºá
ááºáá
áºáá¯á
á®á¡ááœáẠá€á
á¶áááºááŸááºáá»ááºáá»á¬ážááŸáá·áº ááá¯ááºáá®áá±á¬ ááŸááºáááºážá¡áá±á¡ááœááºááᯠááŒááá¬ážáááºá á¡ááŒá¬ážá¡áá»áá¯ážá¡á
á¬ážá¡á¬ážáá¯á¶ážááœáẠááœá±ážáá»ááºáá¬ážáá±á¬ á
á
áºáá¯ááºááŸá¯áá»á¬ážááᯠááá·áºááœááºážá
ááºážá
á¬ážáá«á.
á¥ááá¬á¡á¬ážááŒáá·áºá á€á¥ááá¬ááŸá á ááºáá®ážá¡áá»áá¯ážá¡á á¬ážááŸáá·áº á¡áá±á¬ááºá¡áááºáá±á¬ááºááᯠááœá±ážáá»ááºáá«áá ááá¬ážááẠá¡áááºáá±á¬ááºá ááºáá®ážáá»á¬ážááá¯áᬠááŒááááºááŒá áºáá±á¬áºáááºážá
- á¡áá»áá¯ážá¡á á¬ážá¡á¯ááºá á¯ááŸá á á¶áááºááŸááºáá»ááºáá áºáá¯á á®á¡ááœááºá ááá¯á¡áá»áá¯ážá¡á á¬ážá០áá¯ááºáá¯ááºá¡áá±á¡ááœááºááᯠá¡áááºáá±á¬ááºááŒáá·áº ááŒááá«áááºá
- "á¡áá±á¬ááºáá»á¬áž" á¡ááœá²á·á á á¶áááºááŸááºáá»ááºáá áºáá¯á á®á¡ááœááºá á€á¡áá±á¬ááºá á ááºáá®ážá¡áá±á¡ááœááºááᯠááŒááá«áááºá
á€áááºááŸá¬ ááá¯ááá¯á·áá±á¬á¡ááŒá±á¡áá±áá»á¬ážá¡ááœáẠááááºááááºá á¥ááá¬áá áºáá¯ááŒá áºáááºá
âá¡áááºá¡á
á¬ážâ á¡áá»áá¯ážá¡á
á¬ážááá¯áááºáž á
á
áºáá±ážáá«áá á
á¬ážááœá²ááœáẠáááºáá»ááºááŸááá±ááá·áº á¡áááºáá±á¬ááºá¡áááºá¡á
á¬ážáá»á¬ážááá¯áááºáž ááŒááááºááŒá
áºáááºá "á¡áá±á¬ááº" ááá¹áááŸá á¡áááºáá±á¬ááºáá¯ááºáá¯ááºá¡áá±á¡ááœááºááá¯áááºáž á¡ááŒá±á¡áá±á¡áá
áºá¡á ááŒááºáááºááœááºáá»ááºáááºááŒá
áºááŒá®ážá "á¡áá»áá¯ážá¡á
á¬ážáá»á¬áž" ááá¹áááœááºáᬠááŒá±á¬ááºážáá²áááºááá¯ááºáá«... á€á¥ááá¬áá»á¬ážááẠáá¯á¶ááŸááºáá»ááºááŸá¬ááœááºááŒááºááŸá¬ááœá±ááŸá¯ algorithm ááᯠáá¬ážáááºááẠáá¯á¶áá±á¬ááºáááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá
á¡áᯠáá®áá¬ááᯠáááºá ááºá¡ááŒá±áá¶áá±á«áºááŸá¬ áááºááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºááá²ááá¯áᬠááœá±ážááŒáá·áºáá¡á±á¬ááºá á¡áá»áá¯ážá¡á á¬ážááŸáá·áº á¡áá±á¬ááºáá²á·ááá¯á·áá±á¬ á á¶á¡á¯ááºá á¯áá áºáá¯á á®ááẠáá®ážááŒá¬ážáá±ážááŒááºážááŸá¯áá áºáᯠááá¯á¡ááºáá«áááº-
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
áá®ááŒá±ááŸááºážáá»ááºá áá¬ááŸá¬ážáá±áá²á á¡ááœááºááá¯ážááŸááºážáá«ááẠ- áá±á¬ááºážá
áœá¬áááá¯ááºážáá¬áá«á á
á
áºáá¯ááºááŸá¯á¡ááá¯ááºážáá
áºáá¯á
á®ááá¯ááºážááẠááá¬ááá»á¬ážááá¯ááœááºáá»ááºááẠáá®ážááŒá¬ážáá±ážááŒááºážáá»ááºáá
áºáᯠááá¯á¡ááºááŒá®áž á€áá±ážááœááºážáá»á¬ážááẠá¡ááœááºáá°áá¯á¶ážááá¯ááºáá«á á¡áœááºááá¯ááºážá
ááá¯ážáá»á¬ážááœááºá á¡áá»áá¯á·áá±á¬á¡áá»áá¯ážá¡á
á¬ážáá»á¬ážááẠááŒááºážáááºáá±á¬á
áœááºážáá±á¬ááºáááºááŒá¿áá¬áá
áºáá¯ááŒá
áºááá¯ááºááá·áº áá«áááºáá»á¬ážá
áœá¬áá±á¬ á
á
áºáá¯ááºááŸá¯á¡ááá¯ááºážáá»á¬ážáá«ááŸááááºá
á¡áá»á¬ážá¡á¬ážááŒáá·áº á€áá±á¬áºááŒáá»ááºáá»á¬ážááŒá®ážáá±á¬áẠáá»áœááºá¯ááºá¡á¬áž ááŒá±ááŸááºážáá»ááºá¡áá»áá¯á·ááᯠáááºážááŸááºážáá²á·áááºá ááá¯ááá¯áááºááŸá¬-
- á¡áá±á¡ááœááºá¡á¬ážáá¯á¶ážááᯠquery áá áºáá¯ááœáẠáá±á«ááºážá ááºáá«á áááºážááá¬á¡á áááºážááẠUNION áá±á¬á·áá»ááºá á¬áá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯á ááŒá áºááá¯ááºáá±á¬áºáááºáž áááºážááẠá áœááºážáá±á¬ááºááá¯ááºááŸá¯ááᯠáá»á¬ážá áœá¬á¡áá±á¬ááºá¡áá°áááŒá¯ááá¯áẠ- áá±áá¬áá±á·á áºááẠá¡ááá¯ááºážá¡á áá áºáá¯á á®ááᯠá¡á ááŸá¡áá¯á¶ážá¡áá áá¯ááºáá±á¬ááºááẠáá»ááºááŸááá±áááºááŒá áºáááºá
- Cache ááá¬ááá»á¬ážá ááŒá¿áá¬áá áºáá¯ááᯠáá±á¬áºááŒááá¯ááºážááá¯ááᯠáá«ááᯠá¡ááŒá¶ááŒá¯áá¬ážáá«áááºá ááááá±ážáá»ááºááá±á¬á· áá«á áá±áá¯áá»á¡á¬ážááŒáá·áº áááŒá áºááá¯ááºáá«áá°ážá áá»áœááºá¯ááºááá¯á·ááœáẠ10 "áá»ááºááŸá¬" ááŸááááºááá¯áá«á áá¯á·á áá áºáá¯á á®ááœáẠáááºááá¯áž 5 áá¯ááŸááááºá á€áááºááŸá¬ áá°áá®áá±á¬á¡áœááºááá¯ááºážá ááá¯ážáá»á¬ážááœáẠááŒááºááœá±á·ááá¯ááºááá·áºá¡áá¬áá»á¬ážááŸáá·áº ááŸáá¯ááºážááŸááºáá«á á¡ááœáẠ"áá»áá¯ážááœá¶áá±á¬" á¡ááŒá±á¡áá±ááŒá áºáááºá á¡ááœááºá¡ááŒááºáá áºáá¯á á®á ááœá±ážáá»ááºááŸá¯ááẠá¡ááŒá¬áž á áá«ážááŸá ááá¬ááá»á¬ážá¡áá±á«áº áááºáá±á¬ááºáááºá áá áºáááºážá¡á¬ážááŒáá·áº áááºááŸááºáá»ááºáá áºáá¯á á®á¡ááœáẠááá¬áááẠááœá²ááŒá¬ážááá¯ááºáááºá áá»áœááºá¯ááºááá¯á·áááá°áá¬ááœááºá á¡áá¯á¶ážááŒá¯áá°ááœá±ážáá»ááºááá¯ááºáá±á¬ á á¶áááºááŸááºáá»áẠá á¯á á¯áá±á«ááºáž 9 ááŸáááŒá®ážá ááá¯á·ááŒá±á¬áá·áº ááŒá áºááá¯ááºáá»á± áá±á«ááºážá ááºááŸá¯áá»á¬áž 50 ááŸááá«áááºá ááá¯áá²á·ááá¯á·áá±á¬ áá±áá¬áááºážáá»ááºážááŸá¯ááᯠááŒáá·áºááẠáá¯á¶áá±á¬ááºáá±á¬ memory ááá¯á·ááá¯áẠá¡áá»áááºáááŸááá«á á€áá±áá¬ááœáẠáááºááá·áºááœááºááá¯ááºááŒá®áž áá±á«ááºážá ááºááŸá¯á¡á¬ážáá¯á¶ážááẠá¡á á áºá¡ááŸááºááá¯ááºááŒá±á¬ááºážááŸáá·áº á¡áá¯á¶ážááŒá¯áá°ááẠá á¶áááºááŸááºáá»áẠ250-5 áááºááá¯á ááœá±ážáá»ááºáá²áá«áááºá áá¯ááºáá²á·á ááœá±ážáá¬ážáá°ážáá²á· ááá¬áááá¯áᬠáá»ááºážááá áœá¬ áááºááŒá®áž áááºááŸáºáá¯ááºááá¯á· ááá«áááºá áá«áá±ááá·áº ááœá±ážáá»ááºááŸá¯ááœá± áá»á¬ážáá±áá±á áá®ááᯠáááºááŸáºáᬠáááá±á¬ááºááŸá¯ áááºážáá±áá±á áá¯á¶á·ááŒááºááŸá¯ á¡áá»áááºááŒá¿ áá¬ááœá± ááá¯áááá¬áá±áá± (á¡áá°ážáááŒáá·áº ááá¯áááºá áá±áá¬á¡á á¯á¶ááᯠáá¯á¶ááŸááºááŒá±á¬ááºážáá²ááŒááºáž)á
áá¶áá±á¬ááºážáá±á¬ááºáá áœá¬á ááá¯ááŒá¿áá¬ááẠáá±áá¬ááá¬áá¡áá»á¬ážá¡ááŒá¬ážááœáẠááŒáá¯áááºááŸááºážáááá¯ááºáá±á¬ áááá±á¬ááºáá±á¬ ááŒá±ááŸááºážáááºážáá»á¬áž ááŸááá²á·áááºááŸá¬ ááŒá¬áá«ááŒá®á á€ááœá±ážáá»ááºá áá¬áá»á¬ážáá²ááŸáá áºáá¯á¡ááœááºá áá»ááºááŸá¬á á¬áááŒááºáááºááœááºáá»ááºááŸá¯ááŸáá·áºááááºáá»á¬ážááá¯áááºáá¶ááŒááºážá á¬áá»ááºááŸá¬ááá¯áá¬áá¬ááá¯á·á¡ááŒáá¯ááºáá±á«áºááá¯ááŸá¯ááŸá áºáá¯á¡ááŒá áºá¡ááœááºááŒá±á¬ááºážááŒá®áž data áá»á¬ážááᯠfacets ááŒáá·áºáááºááŒááºážá¡á¬áž "á¡ááŸá±á¬áá·áºá¡ááŸááºááá±áž" ááá·áºáá¯á¶á á¶ááŒáá·áºá¡áá¯á¶ážááŒá¯áá°áá»ááºááŸá¬ááŒááºááá¯á á¯á ááºážáááºáááºážáááºááá±á¬áá±á«ááºáááºá ááŸá¬ááœá±ááŸá¯ááááºáá»á¬ážá
- áááºááá¯ááºááá»áŸ ááŸá¬ážááŸá¬ážáá«ážáá«áž "áá»ááºááŸá¬" á ááŒá®ážááŒáá·áºá á¯á¶áá±á¬ ááœááºáá»ááºááŸá¯ááᯠáá±á«áºááá¯áá«á á¥ááá¬á¡á¬ážááŒáá·áºá ááŸá¬ááœá±ááŸá¯á á¶ááŸá¯ááºážáá»á¬áž ááŒá±á¬ááºážáá²ááá·áºá¡áá«ááá¯ááºáž á¡áá¬á¡á¬ážáá¯á¶ážááᯠááŒááºáááºááœááºáá»ááºááŒááºážáááŒá¯áá«ááŸáá·áºá ááá¯á·áá±á¬áº áááºááŸáá¡ááŒá±á¡áá±áá»á¬ážááŸáá·áº ááá¯ááºáá®ááá·áº á á¯á á¯áá±á«ááºážááááºáá»á¬ážááᯠááŸá¬ááœá±ááŒá®áž áááºážááá¯á·á¡á¬áž ááŒáááẠáá¯á¶ážá áœá²áá°á¡á¬áž ááŸáá¯ážáá±á¬áºááŒááºáž - "1425 ááŸááºáááºážáá»á¬áž ááœá±á·ááŸáá ááŒáááº" á¡áá¯á¶ážááŒá¯áá°ááẠááŸá¬ááœá±ááŸá¯á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááᯠáááºáááºááŒá±á¬ááºážáá²ááá¯ááºááẠááá¯á·ááá¯áẠâááŒááááºâ ááá¯ááºááᯠááŸáááºááá¯ááºáááºá áá¯áááááá á¹á ááœááºáᬠááááºáá»á¬ážááá°ááŒááºážááŸáá·áº "áá»ááºááŸá¬á á¬áá»á¬áž" á¡á¬ážáá¯á¶ážááŸá ááá¬ááá»á¬ážááᯠááŒááºáááºááœááºáá»ááºááŒááºážá¡ááœáẠáá±á¬ááºážááá¯ááŸá¯á¡á¬ážáá¯á¶ážááᯠáá¯ááºáá±á¬ááºáááºááŒá áºáááºá á€ááá á¹á ááœááºá áááºá¡ááœááºááá°ááŒááºááá¯ááºááá²á·ááá¯á·á á á¯á á¯áá±á«ááºážááááºáá»á¬ážááŸáá·áºáááºážáá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬ááºááŒá¯áá¯ááºáááºáá±á¬ááºážááá¯ááŸá¯áá áºáá¯ááŸáá·áºáááºááŒá±ááŸááºážááááá·áºáááºá á€áááºážáááºážááᯠá¡áœááºááá¯ááºážá ááá¯ážáááºáá»á¬ážá áœá¬ááœáẠááœá±á·ááá¯ááºáááºá áááá¬áááºááŸá¬ážáááºá á€áááºá€ááŒá¿áá¬á¡ááœáẠpanacea ááá¯ááºáá«á ááá¯á·áá±á¬áºááá¯ážááŸááºážáá±á¬ááá á¹á áá»á¬ážááœááºáááºážáááºáá±á¬ááºážááœááºáá±á¬á¡áá±ážá¡áá°áá áºáá¯ááŒá áºáááºá
- Solrá ElasticSearchá Sphinx ááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážáá²á·ááá¯á·áá±á¬ áá»ááºááŸá¬á
á¬áá»á¬ážááᯠáá±ááœááºááẠááŸá¬ááœá±áá±ážá¡ááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á áááºážááá¯á·á¡á¬ážáá¯á¶ážááẠ"á¡ááœááºá¡ááŒááºáá»á¬áž" ááá¯áááºáá±á¬ááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážááŒá®áž ááŒá±á¬ááºážááŒááºá¡ááœáŸááºážááááºážááŒá±á¬áá·áº áááºážááᯠáááá±á¬ááºá
áœá¬áá¯ááºáá±á¬ááºáááºá ááŸá¬ááœá±áá±ážá¡ááºáá»ááºáá»á¬áž á¡áá¯ááºáá¯ááºáá¯á¶á ááá¯ááá¯á·áá±á¬ááá
á¹á
áá»á¬ážááœáẠáááºážááá¯á·ááẠáá±áá°áá»áááºááœááºáá»áẠáá±áá¬áá±á·á
áºáá»á¬ážááẠá¡áááºááŒá±á¬áá·áº ááá¯ááá¯áááá±á¬ááºááááºážá áááºááá¯á·áá±á¬ á¡áá±á·á¡áá»áá·áºáá»á¬ážááŸáá·áº áá»áœááºááœááºážáá»ááºáá»á¬áž ááŸááá±ááááºáž - á€ááẠáá®ážááŒá¬ážáá±á¬ááºážáá«ážá¡ááœáẠáá±á«ááºážá
ááºááŒá
áºáááºá á€áá±áá¬ááœáẠáá»áœááºá¯ááºááẠááŸá¬ááœá±áá±ážá¡ááºáá»ááºááẠáááºááá±áá¬ááá¯ááŸá±á¬ááºááŸá¯á¡ááœáẠá¡á
á¬ážááá¯ážááááá¯ááºááá·áºá¡áá»ááºááᯠá¡á¬áá¯á¶á
áá¯ááºá
á±ááá¯áááºá áááºážááᯠáááºáá±á¬ááºážá¡ááŒá
áºá¡áá¯á¶ážááŒá¯áááº- ááŸá¬ááœá±ááŸá¯á¡ááœááºáááºááá¯ááºááá·áº áááºááá±áá¬áá±á·á
áºááŸá áááºááá·áºááŒá±á¬ááºážáá²ááŸá¯áááᯠááŸá¬ááœá±áá±ážá¡ááœáŸááºážááá¯á· áááºáá°ááŒá¯áá«áááºá ááŸá¬ááœá±áá±ážá¡ááºáá»ááºááẠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº ááŸá¬ááœá±áá±ážá¡ááºáá»ááºááŸáá·áºáᬠá¡ááŒááºá¡ááŸáẠá¡áá»áá¯ážáááºáá±á¬ááºááŒá®áž áááºááá±áá¬áá±á·á
áºááᯠááááºáá±á¬ááºááá¯ááºáá±á á€áá±áá¬ááœáẠá¡áá±ážááŒá®ážáá¯á¶ážá¡áá»ááºáá
áºáá¯ááŸá¬ á€áááºáá°áá°ážááŸá¯ááᯠáá¯á¶ááŒááºá
áááºáá»á
áœá¬ á
á¯á
ááºážáá¯á¶ááŒá
áºáááºá áááºážááẠ"áá¯á¶á·ááŒááºááŸá¯á¡áá»áááº" ááá¯á¡ááºáá»ááºáá»á¬ážáá±á«áºááœááºáá°áááºáááºá áááºááá±áá¬áá±á·á
áºááœáẠá¡ááŒá±á¬ááºážá¡áá²áá
áºáá¯ááŸáá·áº ááŸá¬ááœá±ááŸá¯ááœáẠáááºážá "áá±á«áºááœááºááŒááºáž" ááŒá¬ážá¡áá»áááºááẠáá
áá¯ážááááºááá«áá áááºááẠáááŒá¬áá±ážáá®á ááŒá±á¬ááºážáá²áá¬ážáá±á¬ááŸááºáááºážáá»á¬ážááᯠáááá
áºá¡áááºážáááºááá¯ááºáž ááŸá¬ááœá±ááá¯ááºááŒá®áž áááºážááá¯á·ááᯠá¡ááœáŸááºážáá±ážááá·áº áááºáá±á¬ááºááŸá¯áá
áºáá¯ááᯠáááºáá®ážááá¯ááºáááºá ááŒá
áºááá¯ááºáá»á± á¡ááá¯áá¯á¶áž áá¯á¶á·ááŒááºááŸá¯á¡áá»áááºááᯠááá¯áá»ááºáááºá áá
áºáá¯áá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáá«áááºá
á¡áá±á¬ááºážá¡áááºááœááºáá¯á¶áž ááŸá¬ááœá±áá±ážáááºáá±á¬ááºááŸá¯ááá¯á· á¡ááºááááºáá»á¬áž áá±ážááá¯á·áááºá
ááœá±á·ááŸááá»ááºáá»á¬áž
- server-side pageaging ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááẠáááá¬áááºááŸá¬ážáá±á¬ áá±á¬ááºáááºááœá²ááŒá¿áá¬ááŒá
áºááŒá®áž áá»ááºááŒááºá
áœá¬ ááŒá®ážááœá¬ážáá±áá±á¬ ááá¯á·ááá¯áẠááá¯ážááŸááºážáá±á¬ ááŒá®ážáá¬ážáá±á¬ áá±áá¬á¡ááœá²áá»á¬ážá¡ááœááºáᬠá¡áááá¹áá¬ááºááŸááá«áááºá "ááŒá®ážáá¬ážáá±á¬" ááá¯á·ááá¯áẠ"ááŒá®ážááœá¬ážááŸá¯ááŒááºáááº" ááá¯á¡áá²ááŒááºáááºážá¡ááœáẠáááá»áá±á¬ á
á¬ááœááºáááŸááá±á¬áºáááºážá á€áááºážáááºážááᯠáá»áœááºá¯ááºááá¯ááºáá¬áá«áááº-
- áá¬áá¬á¡áá»áááºááŸáá·áº ááœááºáááºáá¯ááºááœáŸáá·áºááŒááºážááá¯á·ááᯠááá·áºááœááºážá ááºážá á¬ážááŒá®áž áá±áá¬á á¯áá±á¬ááºážááŸá¯ á¡ááŒáá·áºá¡á á¯á¶ááᯠáááºáá¶áááŸááá«á áá¯á¶ááŸááºá¡ááá¯ááºáž á áœááºážáá±á¬ááºáááºááá¯á¡ááºáá»ááºáá»á¬ážááŸáá·áº ááá¯ááºáá®áá«áá áá¬áá¬áááºááœáẠá á¬áá»ááºááŸá¬ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠáááºááá·áºá¡áá»ááºá០áááŸááá«á
- áá±áá¬á¡áááºážáááºáá¬ááŸááá±á¬ááŒá±á¬áá·áº ááá±ážáá±á¬á·áá±á¬á¡áá¬áááºááœáẠá áœááºážáá±á¬ááºáááºááŒá¿áá¬áá»á¬áž ááá»áŸá±á¬áºááŸááºážááá¯ááºááá·áºá¡ááŒá±á¡áá±ááŸáááá¯ááºáá±á¬áºáááºáž áá±áá¬á á¯áá±á¬ááºážááŸá¯ááẠá¡áááºáááŒááºááŒá®ážááœá¬ážáá»ááºááŸááááºá á¡áá¬áááºááœáẠá¡áá»áá¯á·áá±á¬ áá±áá¬á¡á á¯áá»á¬ážááẠááááºá¡áá»ááºááᯠáá»á±áááºááŸá¯áááŸááá±á¬á·áá«áá á á¬áá»ááºááŸá¬ááᯠáá»ááºáá»ááºážá áááºááẠááá¯ááá¯áá±á¬ááºážááœááºáá«áááºá
- á á¯á á¯áá±á«ááºážááááºáá»á¬ážááá¯ááŒáááẠááá¯á·ááá¯áẠá á¬áá»ááºááŸá¬áá¶áá«ááºáá»á¬ážááá¯ááŒáááẠá á®ážááœá¬ážáá±ážáá¯ááºáááºážá áááºážáá»ááºáá±á¬ááá¯á¡ááºáá»ááºáááŸááá«áá ááá·áºá áá áºááœáẠááŸá¬ááœá±áá±ážá¡ááºáá»ááºáááŸááá«áá á€á¡áá»ááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºááá±á¬áºáá² ááœá±ážáá»ááºá áá¬áá¶áá«áẠ2 ááᯠááá·áºááœááºážá ááºážá á¬ážááŒááºážá ááá¯áá±á¬ááºážáá«áááºá
- áá»ááºááŸá¬áá»ááºážááá¯ááºááŸá¬ááœá±ááŸá¯á¡ááœáẠááŸááºážááŸááºážáááºážáááºáž ááá¯á¡ááºáá»ááºááŸááá«áá á
áœááºážáá±á¬ááºáááºááᯠáááááá¯ááºá
á±áá² ááá·áºááœáẠááœá±ážáá»ááºá
áᬠááŸá
áºáá¯ááŸááááºá
- ááŸá¬ááœá±ááŸá¯á á¶ááŸá¯ááºážáá»á¬áž ááŒá±á¬ááºážáá²ááá·áºá¡áá«ááá¯ááºáž ááá¬áá¡á¬ážáá¯á¶ážááᯠááŒááºáááœááºáá«ááŸáá·áºá
- Solrá ElasticSearchá Sphinx ááŸáá·áº á¡ááŒá¬ážááŸá¬ááœá±áá±ážá¡ááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á ááá¯á·áá±á¬áº áááºážááẠáááºááá±áá¬áá±á·á áºá¡ááœáẠá¡á á¬ážááá¯ážááááá¯ááºááŒá±á¬ááºáž áá¬ážáááºáá¬ážááá·áºááŒá®áž ááŸá¬ááœá±ááŸá¯ááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáááºá¡ááœáẠáááºáááá¯ááŸá±á¬ááºááŸá¯á¡ááŒáẠá¡áá¯á¶ážááŒá¯ááá·áºáááºá
- ááá¯á·á¡ááŒááºá áá»ááºááŸá¬áá»ááºážááá¯ááºááŸá¬ááœá±ááŸá¯ááá á¹á ááœááºá ááŸá¬ááœá±ááŸá¯ááááºá á¬áá»ááºááŸá¬ááᯠááŒááºáááºááá°ááŒááºážááŸáá·áº áá±ááœááºááŒááºážááá¯á·ááᯠá¡ááŒáá¯ááºáá±á¬ááºážááá¯ááŸá¯ááŸá áºáá¯á¡ááŒá Ạááá¯ááºážááŒá¬ážááẠá¡áááá¹áá¬ááºááŸááá«áááºá ááááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá°á¡ááœáẠááá¯á¡áá±ážááŒá®ážáá±á¬áºáááºáž ááááºáá»á¬ážáááŸáááẠááá¬ááá»á¬ážááᯠáá±ááœááºááŒááºážááẠááá¯ááŒá¬ááá¯ááºáá«áááºá
- áááºááŸá¬ááœá±áááºá¡ááœáẠSQL áá±áá¬áá±á·á áºááᯠá¡áá¯á¶ážááŒá¯áá±áá«áá á€á¡ááá¯ááºážááŸáá·áºáááºááá¯ááºááá·áº áá¯ááºááŒá±á¬ááºážáá²ááŸá¯ááŸááºááá»áŸááᯠááá·áºáá»á±á¬áºáá±á¬áá±áá¬ááá¬á (ááá¯ááºááá¯ááºáá¯ááºááœáŸáá±áá¬áá±á·á áºááœáẠááá¬ááááºáá»á±á¬áºááœááº) á áœááºážáá±á¬ááºáááºá¡ááœáẠáá±á¬ááºážááœááºá áœá¬á ááºážáááºááá·áºáááºá áá±áá¬áá±á·á áºáááŒá áºáááºá¡á¬ážáá¯á¶ážááŸáá·áº á¡áá°ážáááŒáá·áº "ááá¯ááºááá¯ááº" áá áºáá¯áá±á«áºááœáẠquery execution time ááᯠá á±á¬áá·áºááŒáá·áºáááºáááºáž á¡ááŒá¶ááŒá¯ááá¯áá«áááºá áá±áá¬ááá¬á ááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ áá±ážááŒááºážááŸá¯á¡á á®á¡á ááºáá»á¬ážááẠááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážá¡ááá·áºááœáẠá¡á¬ážáá¯á¶ážá¡áááºááŒá±áá±á¬áºáááºážá á¡ááŒá±á¡áá±ááŸá¬ áááá¬á áœá¬ ááŒá±á¬ááºážáá²ááœá¬ážááá¯ááºáá«áááºá
source: www.habr.com