Tuning Reads
Learn about the main factors you need to consider when tuning the performance during reading data from TileDB arrays.
Writes
Tuning writes appropriately can boost the read performance. Visit the Performance: Tuning Writes section for more details on optimizing writes.
Subarray shape
The subarray shape must follow the space tiling of the array as much as possible. Read the Performance: Tiling and Data Layout section, since read performance is highly dependent on the array tiling.
Read layout
The most efficient layout to read in is global order, as TileDB will avoid sorting and re-organizing the result cells internally as much as possible. Row-major and col-major layouts require sorting and thus more work for TileDB. In general, the read layout must coincide as much as possible with the global order.
Read size
Opt for a larger read instead of many smaller reads. This is because TileDB can take advantage of parallelism and perform better parallel tile filtering and I/O. Moreover, you can avoid certain fixed costs associated with fetching metadata and indexing information many times.
Attribute subselection
TileDB uses a “columnar” format, physically storing the attribute values in separate storage locations. If your query requires only a subset of attributes, you can specify those attributes at the query level. As a result, TileDB will skip fetching any redundant data from attributes that aren’t part of the query.
Distributed compute
You can maximize performance if you use TileDB Cloud and take advantage of distributing compute. For more information, visit the Key Concepts: Distributed Compute and Tutorials: Distributed Compute sections.