Suppose that records were stored together in program-defined blocks of a particular structure. First, all of the records in the block could be in key sequence, and the block could be generated with extra space for records to be added, thus eliminating some of the maintenance overhead. Second, the beginning of the block could contain a field that would give the relative record number of the block containing the next records in key sequence, thus allowing sequential access in key order to all or part of the file. So far so, good. Main memory availability may dictate a smaller size, but if main memory is no constraint, the block should be cluster sized at a miminum.
Most authors recommend that it be track sized.
This size fits the natural physical storage space and will probably result in most efficient retrieval. Such a block structure has implications for the index as well. First, every key need not be stored in the index, only the largest key in the data block need be represented along with the relative record number of that block. Second, the index will be much smaller, thereby increasing the likelihood that it will fit into memory. Third, the index will only have to be changed if the largest key in a block changes.