iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
Software Development

SQL / NoSQL的實作與比較系列 第 5

NoSQL的格式(二)

Sort Key的用途

  1. 在建立Table的時候, 可看到有一個非必要的選項Sort Key.
    https://ithelp.ithome.com.tw/upload/images/20210919/200919424szvhjANWl.png

  2. 在某些簡單的應用下,如同之前Employee Table, 在創建表時只需要用到一個唯一值Partition Key作為主鍵. 如同SQL表的Primary Key. 但是隨著資料量的成長,為了找出某一筆資料使用Table Scan, 相對則表現在效能遞減與費用增加. 但是藉由Sort Key的運用,可以協助改善在相同Partition Key集合內的搜尋與排序效能.

  3. 使用範例來說明比較容易理解. 例如有一個Table用來記錄每支手機每天的LOG. 就可以將Partition Key與Sort Key作如下設定. 由於有了Sort Key的加入, Partition Key可以不需再是唯一值, 而是用Partition Key加Sort Key作為唯一值.
    https://ithelp.ithome.com.tw/upload/images/20210919/20091942ZnjnICH8pc.png

  4. 資料的呈現範例如下.
    https://ithelp.ithome.com.tw/upload/images/20210919/20091942ApFwj1IQRJ.png

  5. 對應到SQL Table的語法就是使用 Composite Key.

CREATE TABLE [dbo].[EventLog](
	[DeviceID] [nchar](10) NOT NULL,
	[Date] [nchar](10) NOT NULL,
	[Event] [nchar](16) NOT NULL,
 CONSTRAINT [PK_EventLog] PRIMARY KEY CLUSTERED 
(
	[DeviceID] ASC,
	[Date] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
  1. 這時再用來看另一個應用程式版本紀錄表的範例, 就很容易理解了.
    https://ithelp.ithome.com.tw/upload/images/20210919/20091942EME6G454Hj.png

上一篇
NoSQL的格式(一)
下一篇
快速新增範例資料
系列文
SQL / NoSQL的實作與比較30

尚未有邦友留言

立即登入留言