you need to split up your terrain in tiles.
for many reasons by the way.
one of them is that your use of texture ram will be enormously high:
1024x1024 = 4mb
2048x2048 = 16mb
4096x4096 = 64mb
and so on
and that has nothing to do with the filesize(in mb) of your actual png.
texture ram is calculated by 4bits per pixel, so it doesnt care how much you compress your file, that will just change the filesize of your app.
to keep your ram usage low, and your game working without lags (and working at all, as your 5000pixel terrain wouldnt work at all as correctly pointed out by segaboy) i suggest splitting your terrain in multiple 256x256px tiles.
each of them will be 256kb in your ram, keep in mind that if there is the possibility of reusing one of them you save another 256kb.
so even smaller tiles = even better because you can reuse for example simple grass and breaking up the repetetive look by adding a tile with for example a rock here and there.
what you’d do next is loading and removing the tiles on the go while you check where the player is right now. so that you wont have all your tiles in your ram all the time.
some engines do that automatically and its called occlusion culling, i dont know if corona has something similar to it, a search for occlusion culling didnt give me any results, so it might be called different in corona or simply has to be done by your code, what isnt that big of a deal either.
i dont know how new this all is to you but here are some terms you could look up in the search:
tiled map
imagesheets
spritesheets
map generation with tables