I have a smart contract to store user information in Ethereum blockchain. For every new transaction entry gets added into map or array. This looks too costly in terms of storage. If I use map or array to store 1 lakh (100KB) user information then for every new transaction I will have to add a new entry to the map and plus 1 lakh [existing transactions] in the state.
Is there any other way to optimize this issue or are all smart contracts written in this way only?