1. "План выполнения": Выполнение этого запроса (выбор первичного ключа), source_elapsed колонка:
Создать как Insert :
2266,1768,1672,3302,3324,1422,1623,3833,3933,3519,4166. Среднее: 2803
Создать как обновление:
1621,3498,4769,3680,3905,1781,4215,3764,3747,3460,1987. Средняя: 3312
Возможно, похоже, что обновление немного медленнее, но это не совсем согласовано, и я считаю, что с большим количеством исполнений они должны быть одинаковыми.
2. Хранение:
Row создан как Вставка:
[user1] @ 184 Роу [Информация о = [ц = 1486368137507000 = ТТЛ 3600, пусть = 1486371737]]: 2017-01-01 14: 00Z, bla, 5,2 | [Голуб = 77777 ц = 1486368137507000 ТТЛ = 3600 LDT = 1486371737], [BLE = 0 ц = 1486368137507000 ТТЛ = 3600 LDT = 1486371737]
Ряд создан как обновление:
[user30] @ 122 Row [info = [ts = -9223372036854775808]]: 2017-01-01 14: 00Z, bla, 5,2 | [Blu = 777 ц = 1486368139142000 = ТТЛ 3600 LDT = 1486371739], [BLE = 1 ц = 1486368139142000 = ТТЛ 3600 LDT = 1486371739]
Я предполагаю, что sstabledump действительно представляющих данные, как он сохранен в файле. Единственная разница здесь в том, что строка, созданная как вставка, генерируется с помощью ttl и позволяет столбцам на уровне строк (и ts устанавливается на созданное время) - это строки причин со всеми нулевыми неквантными столбцами, которые можно выбрать с помощью create as insert и не выбирается при создании в качестве обновления. Таким образом, строки, созданные со вставкой, будут использовать еще несколько байт памяти, то есть все различия здесь.
3.Надгробия:
Созданный как Вставка:
[user1] @ 48 строк [Информация о = [ц = -9223372036854775808]]: 2017-01-01 14: 00Z, бла, 5,2 | [Blu = ц = 1486368407044000 LDT = 1486368406], [BLE = ц = 1486368407044000 LDT = 1486368406]
Созданный как обновление:
[user30] @ 0 Строка [Информация о = [ц = -9223372036854775808] ]: 2017-01-01 14: 00Z, бла, 5,2 | [blu = ts = 1486368403444000 ldt = 1486368403], [ble = ts = 1486368403444000 ldt = 1486368403]
Как и ожидалось, надгробные плиты выглядят одинаково для обоих.
Резюме:
Из моих наблюдений нет никакой реальной разницы в производительности между двумя типами создания строк. Я буду рад увидеть другие тесты/наблюдения/обзоры исходного кода здесь.