Of course there are times when indices are important, such as when doing single-row lookups or filtering or grouping low-cardinality columns. Greenplum Database provides a range of index types, including b-trees and bitmap indices, that address these needs exactly. Another very powerful technique that is available with Greenplum Database is multi-level table partitioning. This technique allows users to break very large tables into buckets on each segment based on one or more date, range, or list values. This partitioning is above and beyond the hash partitioning described earlier and allows the system to scan just the subset of buckets that might.