This doesn't really answer the question.( which is why its not marked answered) The questioner is mostly concerned about how the implementation approach , eg. Rather than saying it can be done using a B-tree ( or minmax tree) , it would be helpful if you provided information about how keys are formed using multiple columns in such a way that they are ordered , so that a B-tree can be used.