Strategies for Handling Large Tile Maps?

I’m trying to get into java game development and I’ve gotten as far as a small very basic top-down tile-based game.

I have my tiles in a chunk-type format. To update the tiles (only drawing them right now) I loop through the chunks, loop through all tiles in the each chunk and draw them according to the chunks position based off of the chunk offset according to the player’s position and the position of the tile itself within the context of the chunk.

This works fine until I have a large number of tiles. If I have a map of 2x2 chunks, with 50x50 tiles in each chunk, everything runs fast enough. Whenever I have a map of 2x2 chunks with 100x100 tiles in each chunk, the program runs significantly slower.

I am currently only drawing chunks that have tiles displayed on the map, but I am still looping through tiles to determine what needs to be drawn even if I’m not drawing them - I’m thinking about determining the edge tile positions based on the chunk position, and evaluating whether to draw the chunk that way, but it seems this would still limit the total number of chunks that could be available in the map before affecting performance.

I’m looking for some high-level strategies I can research further, tutorials, or any advice on how to solve this problem.

I am very much a noob at game development, and I know this is probably something basic that most people know how to work around.

Any help is appreciated, any ideas or pointers?