This page explains that it's a bad practice to use the INDX table for storing custom content.
What is INDX ?
INDX is a standard table used by some standard SAP applications.
It has a special structure used for storing data as a "data cluster" (EXPORT ... TO DATABASE ... cf https://help.sap.com/http.svc/rc/abapdocu_751_index_htm/7.51/en-US/abapexport_data_cluster_medium.htm#!ABAP_ALTERNATIVE_4@4@)
You should never insert data directly into INDX.
Why you should not insert custom data in the INDX table
Because INDX is a standard table.
There may be several risks:
- the standard applications may destroy or corrupt your data if they evolve after applying patches or upgrading.
- it may be difficult to identify the cause of the growth of the table because it's used by many standard applications. If you open a ticket at SAP support, they may help, unless it's caused by your custom applications.
What you should do instead
Instead, create your own Z custom table, and store data in it.
You may still create it as a "data cluster" (to still use EXPORT ... TO DATABASE ...), but you should use a "structure in one row" since ABAP 7.51 (cf https://help.sap.com/http.svc/rc/abapdocu_751_index_htm/7.51/en-US/index.htm?file=abennews-751-data_cluster.htm). The data is compressed by default.
Another solution is to use classic Open SQL to store and read data, by creating a normal database table with a BLOB/RAWSTRING column to store the data. This allows benefiting of Open SQL BLOB features for a better performance (since ABAP 7.02). You may use the SAP compression algorithm to store the data by using EXPORT ... TO DATA BUFFER table-blobcolumn COMPRESSION ON (cf https://help.sap.com/http.svc/rc/abapdocu_751_index_htm/7.51/en-US/abapexport_data_cluster_medium.htm#!ABAP_ALTERNATIVE_1@1@).
The SAP note 3992 - Purpose of the table INDX is intended to SAP development teams only. As a general rule-of-thumb, it's highly recommended that customers do never update data directly in standard tables because they might not benefit of SAP support in case of data corruption. They should only store their own data in custom tables, or use official APIs like BAPI, web service, etc.
Horst Keller comment about storing data in INDX : "Arrgh! Using INDX in application programs is not recommended at all!!!" (https://answers.sap.com/answers/228607/view.html)