2017-02-05 106 views

回答

2

1 「執行計劃」:執行相同的查詢(由主鍵選擇),source_elapsed柱:

創建作爲插入:

2266,1768,1672,3302,3324,1422,1623,3833,3933,3519,4166。平均:2803

創建的更新:

1621,3498,4769,3680,3905,1781,4215,3764,3747,3460,1987。 Avg:3312

也許它看起來像Update有點慢,但這並不是真的一致,而且我認爲在執行次數較多時它們應該是相同的。

2.存儲:作爲插入創建

行:

[USER1] @ 184 行[信息= [TS = 1486368137507000 TTL = 3600,讓= 1486371737]]:2017-01-01 14:00Z,bla,5,2 | [藍光= 77777 TS = 1486368137507000 TTL = 3600 LDT = 1486371737],[BLE = 0 TS = 1486368137507000 TTL = 3600 LDT = 1486371737]

行創建爲更新:

[user30] @ 122 Row [info = [ts = -9223372036854775808]]:2017-01-01 14:00Z,bla,5,2 | [藍光= 777個TS = 1486368139142000 TTL = 3600 LDT = 1486371739],[BLE = 1 TS = 1486368139142000 TTL = 3600 LDT = 1486371739]

我假定sstabledump確實表示數據,因爲它保存在文件中。這裏作爲插入行創建的唯一區別是使用ttl生成的,並且允許行級別上的列(並且ts設置爲創建的時間) - 這是導致包含所有空非鍵列的行可以使用create as insert和select不能通過創建更新來選擇。因此使用插入創建的行將使用多個字節的更多存儲空間,這是所有不同之處。

3。墓碑:

創建爲插入:

[USER1] @ 48行[信息= [TS = -9223372036854775808]]:2017年1月1日14:00Z,BLA,5,2 | [藍光= TS = 1486368407044000 LDT = 1486368406],[BLE = TS = 1486368407044000 LDT = 1486368406]

創建爲更新:

[user30] @ 0行[信息= [TS = -9223372036854775808] ]:2017-01-01 14:00Z,bla,5,2 | [blu = ts = 1486368403444000 ldt = 1486368403],[ble = ts = 1486368403444000 ldt = 1486368403]

正如預期的那樣,兩個創建的墓碑看起來完全相同。

摘要:

從我的觀察有兩種類型的行創作的性能之間沒有真正的區別。我很樂意在這裏看到其他測試/觀察/源代碼評論。