ordered index performance ========================= "mc02" 2x1700 MHz linux-2.4.9 gcc-2.96 -O3 one db-node case a: maintenance: index on Unsigned testOIBasic -case u -table 1 -index 2 -fragtype small -threads 10 -rows 100000 -subloop 1 -nologging case b: maintenance: index on Varchar(5) + Varchar(5) + Varchar(20) + Unsigned testOIBasic -case u -table 2 -index 5 -fragtype small -threads 10 -rows 100000 -subloop 1 -nologging case c: full scan: index on PK Unsigned testOIBasic -case v -table 1 -index 1 -fragtype small -threads 10 -rows 100000 -subloop 1 -nologging case d: scan 1 tuple via EQ: index on PK Unsigned testOIBasic -case w -table 1 -index 1 -fragtype small -threads 10 -rows 100000 -samples 50000 -subloop 1 -nologging -v2 a, b 1 million rows, pk update without index, pk update with index shows ms / 1000 rows for each and pct overhead c 1 million rows, index on PK, full table scan, full index scan shows ms / 1000 rows for each and index time overhead d 1 million rows, index on PK, read table via each pk, scan index for each pk shows ms / 1000 rows for each and index time overhead samples 10% of all PKs (100,000 pk reads, 100,000 scans) the "pct" values are from more accurate total times (not shown) comments [ ... ] are after the case 040616 mc02/a 40 ms 87 ms 114 pct mc02/b 51 ms 128 ms 148 pct optim 1 mc02/a 38 ms 85 ms 124 pct mc02/b 51 ms 123 ms 140 pct optim 2 mc02/a 41 ms 80 ms 96 pct mc02/b 51 ms 117 ms 128 pct optim 3 mc02/a 43 ms 80 ms 85 pct mc02/b 54 ms 118 ms 117 pct optim 4 mc02/a 42 ms 80 ms 87 pct mc02/b 51 ms 119 ms 129 pct optim 5 mc02/a 43 ms 77 ms 77 pct mc02/b 54 ms 118 ms 117 pct optim 6 mc02/a 42 ms 70 ms 66 pct mc02/b 53 ms 109 ms 105 pct optim 7 mc02/a 42 ms 69 ms 61 pct mc02/b 52 ms 106 ms 101 pct optim 8 mc02/a 42 ms 69 ms 62 pct mc02/b 54 ms 104 ms 92 pct optim 9 mc02/a 43 ms 67 ms 54 pct mc02/b 53 ms 102 ms 91 pct optim 10 mc02/a 44 ms 65 ms 46 pct mc02/b 53 ms 88 ms 66 pct optim 11 mc02/a 43 ms 63 ms 46 pct mc02/b 52 ms 86 ms 63 pct optim 12 mc02/a 38 ms 55 ms 43 pct mc02/b 47 ms 77 ms 63 pct mc02/c 10 ms 14 ms 47 pct mc02/d 176 ms 281 ms 59 pct optim 13 mc02/a 40 ms 57 ms 42 pct mc02/b 47 ms 77 ms 61 pct mc02/c 9 ms 13 ms 50 pct mc02/d 170 ms 256 ms 50 pct optim 13 mc02/a 39 ms 59 ms 50 pct mc02/b 47 ms 77 ms 61 pct mc02/c 9 ms 12 ms 44 pct mc02/d 246 ms 289 ms 17 pct [ after wl-1884 store all-NULL keys (the tests have pctnull=10 per column) ] [ case d: bug in testOIBasic killed PK read performance ] optim 14 mc02/a 41 ms 60 ms 44 pct mc02/b 46 ms 81 ms 73 pct mc02/c 9 ms 13 ms 37 pct mc02/d 242 ms 285 ms 17 pct [ case b: do long keys suffer from many subroutine calls? ] [ case d: bug in testOIBasic killed PK read performance ] none mc02/a 35 ms 60 ms 71 pct mc02/b 42 ms 75 ms 76 pct mc02/c 5 ms 12 ms 106 pct mc02/d 165 ms 238 ms 44 pct [ johan re-installed mc02 as fedora gcc-3.3.2, tux uses more C++ stuff than tup] charsets mc02/a 35 ms 60 ms 71 pct mc02/b 42 ms 84 ms 97 pct mc02/c 5 ms 12 ms 109 pct mc02/d 190 ms 236 ms 23 pct [ case b: TUX can no longer use pointers to TUP data ] optim 15 mc02/a 34 ms 60 ms 72 pct mc02/b 42 ms 85 ms 100 pct mc02/c 5 ms 12 ms 110 pct mc02/d 178 ms 242 ms 35 pct [ corrected wasted space in index node ] optim 16 mc02/a 34 ms 53 ms 53 pct mc02/b 42 ms 75 ms 75 pct [ binary search of bounding node when adding entry ] none mc02/a 35 ms 53 ms 51 pct mc02/b 42 ms 75 ms 76 pct [ rewrote treeAdd / treeRemove ] optim 17 mc02/a 35 ms 52 ms 49 pct mc02/b 43 ms 75 ms 75 pct [ allow slack (2) in interior nodes - almost no effect?? ] wl-1942 mc02/a 35 ms 52 ms 49 pct mc02/b 42 ms 75 ms 76 pct before mc02/c 5 ms 13 ms 126 pct mc02/d 134 ms 238 ms 78 pct after mc02/c 5 ms 10 ms 70 pct mc02/d 178 ms 242 ms 69 pct [ prelim performance fix for max batch size 16 -> 992 ] wl-2066 mc02/c 5 ms 10 ms 87 pct before mc02/d 140 ms 237 ms 69 pct wl-2066 mc02/c 5 ms 10 ms 69 pct after mc02/d 150 ms 229 ms 52 pct [ wl-2066 = remove ACC storage, use TUX test to see effect ] vim: set et: