array_size
256
1024
4096
1
CREATE TABLE array_distance_f32_{array_size}
(
id UInt64,
a Array(Float32),
b Array(Float32)
)
ENGINE = Memory
CREATE TABLE array_distance_mixed_{array_size}
(
id UInt64,
u8 Array(UInt8),
f64 Array(Float64)
)
ENGINE = Memory
INSERT INTO array_distance_f32_{array_size}
SELECT
number,
arrayMap(i -> toFloat32((number * 9 + i) % 1000) * 0.001, range({array_size})),
arrayMap(i -> toFloat32((number * 7 + i + 13) % 1000) * 0.001, range({array_size}))
FROM numbers(100000)
INSERT INTO array_distance_mixed_{array_size}
SELECT
number,
arrayMap(i -> toUInt8((number + i) % 256), range({array_size})),
arrayMap(i -> toFloat64((number * 3 + i) % 997) * 0.5, range({array_size}))
FROM numbers(100000)
SELECT sum(L1Distance(a, b)) FROM array_distance_f32_{array_size}
SELECT sum(L2Distance(a, b)) FROM array_distance_f32_{array_size}
SELECT sum(L2SquaredDistance(a, b)) FROM array_distance_f32_{array_size}
SELECT sum(LinfDistance(a, b)) FROM array_distance_f32_{array_size}
SELECT sum(cosineDistance(a, b)) FROM array_distance_f32_{array_size}
WITH (SELECT a FROM array_distance_f32_{array_size} LIMIT 1) AS needle
SELECT sum(L2Distance(needle, b)) FROM array_distance_f32_{array_size}
WITH (SELECT a FROM array_distance_f32_{array_size} LIMIT 1) AS needle
SELECT sum(cosineDistance(needle, b)) FROM array_distance_f32_{array_size}
SELECT sum(L1Distance(u8, f64)) FROM array_distance_mixed_{array_size}
SELECT sum(L2Distance(u8, f64)) FROM array_distance_mixed_{array_size}
SELECT sum(cosineDistance(u8, f64)) FROM array_distance_mixed_{array_size}
WITH (SELECT u8 FROM array_distance_mixed_{array_size} LIMIT 1) AS needle
SELECT sum(L2Distance(needle, f64)) FROM array_distance_mixed_{array_size}
DROP TABLE array_distance_f32_{array_size}
DROP TABLE array_distance_mixed_{array_size}