We are unable to deploy custom objects due to 'indexes' error. Why?
Custom Business Objects (CO)
We are receiving messages similar to the following:
Table Contact: Class has ## indexes, but only ## indexes are allowed.
Table Incidents: Class has ## indexes, but only ## indexes are allowed.
You will need to either remove indexes that already exist in custom fields:
-- Configuration -> Database -> Custom Fields -> <select table>
-- Or decrease the number of indexed fields within your system attributes for that table.
This message occurs because the modifications you are implementing ADDS to the indexes that are already existing in your system for that particular table. The addition of your indexed field(s) in the object pushes the indexes over the maximum allowed.
You can define up to 31 indices per custom object and up to 18 for standard objects. However, specifying too many indexes on a specific table can degrade search performance rather than improve it. It is recommended that you do not use all of the allotted indexes. Please note, custom fields and system attributes are included in the standard object schema so the limit is cumulative. For example, if you index incident system attributes and create additional custom fields which are also indexed, this total number of indexes cannot exceed 18 for the table.