Index optimization: from B-tree to ICP