Performance core principles: 2. Indexing


What effect does indexing have on Performance? Why would you want to reduce it? How can you design to reduce indexing?

When FileMaker builds an index it creates and adds a resource, data, to the .fmp12 file.

Such indexes are essential for some aspects of FileMaker use:

  1. relationships
  2. value lists
  3. perform find
  4. sorting (thanks @steve_ssh )
  5. [are there any other use cases where indexing is essential?]

The ease of use default setting is that every field that is added to a table, if it is indexable, is set to index if required. If Find Mode access is permitted and the fields contain much data then there are several performance hits:

A. indexing of big content on many fields may take time and hence slow down system response whenever FileMaker decides to reindex or update the index of a field
B. indexing makes a file bigger and hence creates additional load on hosting and backup
C. anyone know whether indexing performance differs over WAN i.e. can it now run server side or does it engage the client as part of the process?
D. [other possible performance hits?]

If performance is your priority then it makes sense to only index what is essential and not to index anything that is not essential. Just ask the machine to do less.

The are two different types of indexing and it makes sense to understand the difference.

Would someone like to explain the difference between full and reduced indexing?


I believe that record sorting may fall into this list, as well.