# B-Tree Indexes

> As explained in the Indexes page, the eXtremeDB, B-Tree (`tree`) indexes can include any combination of fields, structure elements or vector elements from a given class. `Tree` indexes can be used for ordered (sorted) retrieval, range retrieval and pattern matching.

> Also, key-value-inclusive and covering indexes can be used with `tree` indexes to provide significant performance improvements by including the desired data field(s) in the index. Please use this link for further details.

> ## Memory Consumption

> Memory consumption is comparable for `tree` and `hash` indexes of `transient` classes. A rough estimate for a `tree` index is 10 bytes per entry (exact size depends on the order of insertions or deletions); and H + 8 bytes per entry for a `hash` index, where the constant H is fixed size space taken by the hash table and can be calculated as E / 5 * 4 where E is the estimated number of hash entries provided by you in the database schema and 5 is a constant hash factor used by eXtremeDB. If reallocation of the hash table is necessary, then the size will be H * 2.