Review your architecture if everything is needed to store as Custom settings.
There are other options available, which I can suggest you to use Platform Cache which has greater limits.
- Enterprise Edition - 10 MB
- Unlimited and Performance - 30 MB
Store values in cache
// Add a value to the cache
DateTime dt = DateTime.parse('06/16/2015 11:46 AM');
Cache.Org.put('ns1.partition1.orderDate', dt);
if (Cache.Org.contains('ns1.partition1.orderDate')) {
DateTime cachedDt = (DateTime)Cache.Org.get('ns1.partition1.orderDate');
}
You can retrieve the values from cache as follows without using SOQL queries
Cache.Org.put('orderDate', dt);
if (Cache.Org.contains('orderDate')) {
DateTime cachedDt = (DateTime)Cache.Org.get('orderDate');
}
In my experience, I have got excellent benefit using custom settings with Platform cache together.
Custom settings are good if you are using configuration settings related data which will be available frequently. So, you need to revisit your architecture what type of data to be stored or cached.
Here are few points I have followed:
If you have configurable settings which are same irrespective of orgs then store them as Custom MetaData Types.
If you want to insert, update, or delete configurable settings store them in Custom Settings for cache.
If you have large volume of data which you cannot accommodate in custom settings then store in Custom object and use Platform cache also. So, if cache is empty then add values to the cache (one SOQL query will be good) and next time read them from cache.