eXtremeSQL Covering Indexes

As described in the eXtremeDB User Guide, covering indexes can significantly improve lookup performance for some access patterns on transient classes only. eXtremeSQL provides support for the covering index as well. For example, for a table defined as:

     
    create table Tab (string name, userid integer, body string);
     

A covering index would be created as:

     
    create index pk on Tab(*);
     

Note however that the “covering” optimization only makes sense for, and should only be used in conjunction with, the MURSIW transaction manager. This is because, even if the field values are present in the index, the MVCC transaction manager still requires access to the object header in RAM in order to determine the right version of the value.