- num elem is actual size of input array sorted - measurements are in RDTSC ticks per element sorted *** means smallest input that radix sort measured equal or faster select i % 2 as res from generate_series(1,100,1) i order by res offset 1000; SET NOTICE: num elem: 30 qsort: 26.6 radix: 49.3 NOTICE: num elem: 40 qsort: 29.4 radix: 43.2 NOTICE: num elem: 50 qsort: 28.3 radix: 37.7 NOTICE: num elem: 60 qsort: 27.6 radix: 35.1 NOTICE: num elem: 70 qsort: 27.0 radix: 32.9 NOTICE: num elem: 80 qsort: 30.0 radix: 30.5 *** NOTICE: num elem: 90 qsort: 29.7 radix: 29.9 select i % 4 as res from generate_series(1,100,1) i order by res offset 1000; NOTICE: num elem: 30 qsort: 38.1 radix: 54.4 NOTICE: num elem: 40 qsort: 36.5 radix: 46.3 NOTICE: num elem: 50 qsort: 37.0 radix: 40.4 NOTICE: num elem: 60 qsort: 35.6 radix: 37.9 NOTICE: num elem: 70 qsort: 35.4 radix: 34.8 *** NOTICE: num elem: 80 qsort: 36.8 radix: 32.4 NOTICE: num elem: 90 qsort: 38.3 radix: 30.4 select i % 6 as res from generate_series(1,100,1) i order by res offset 1000; SET NOTICE: num elem: 30 qsort: 48.6 radix: 54.6 NOTICE: num elem: 40 qsort: 50.6 radix: 46.8 *** NOTICE: num elem: 50 qsort: 50.2 radix: 41.9 NOTICE: num elem: 60 qsort: 43.6 radix: 37.2 NOTICE: num elem: 70 qsort: 48.6 radix: 36.4 NOTICE: num elem: 80 qsort: 43.2 radix: 34.3 NOTICE: num elem: 90 qsort: 45.4 radix: 32.2 select i % 10 as res from generate_series(1,100,1) i order by res offset 1000; NOTICE: num elem: 30 qsort: 66.6 radix: 60.6 *** NOTICE: num elem: 40 qsort: 66.9 radix: 52.7 NOTICE: num elem: 50 qsort: 60.4 radix: 45.9 NOTICE: num elem: 60 qsort: 58.4 radix: 41.8 NOTICE: num elem: 70 qsort: 63.9 radix: 37.8 NOTICE: num elem: 80 qsort: 56.8 radix: 37.1 NOTICE: num elem: 90 qsort: 58.7 radix: 33.5 select (250*random())::int as res from generate_series(1,100,1) i order by res offset 1000; SET NOTICE: num elem: 30 qsort: 77.9 radix: 79.7 NOTICE: num elem: 40 qsort: 74.2 radix: 72.2 *** NOTICE: num elem: 50 qsort: 88.0 radix: 64.6 NOTICE: num elem: 60 qsort: 90.7 radix: 64.6 NOTICE: num elem: 70 qsort: 97.2 radix: 61.2 NOTICE: num elem: 80 qsort: 96.8 radix: 60.3 NOTICE: num elem: 90 qsort: 94.6 radix: 63.6 select (64000*random())::int as res from generate_series(1,100,1) i order by res offset 1000; NOTICE: num elem: 30 qsort: 82.6 radix: 83.9 NOTICE: num elem: 40 qsort: 91.2 radix: 76.9 *** NOTICE: num elem: 50 qsort: 86.7 radix: 70.9 NOTICE: num elem: 60 qsort: 91.4 radix: 75.0 NOTICE: num elem: 70 qsort: 91.1 radix: 74.5 NOTICE: num elem: 80 qsort: 96.8 radix: 63.6 NOTICE: num elem: 90 qsort: 107.9 radix: 61.3 select (1_000_000_000*random())::int as res from generate_series(1,100,1) i order by res offset 1000; SET NOTICE: num elem: 30 qsort: 76.0 radix: 84.3 NOTICE: num elem: 40 qsort: 78.7 radix: 74.8 *** NOTICE: num elem: 50 qsort: 91.7 radix: 74.6 NOTICE: num elem: 60 qsort: 92.7 radix: 70.3 NOTICE: num elem: 70 qsort: 98.2 radix: 68.1 NOTICE: num elem: 80 qsort: 104.8 radix: 70.5 NOTICE: num elem: 90 qsort: 111.0 radix: 70.6