This website (if you don't already know it) is great for general over view: https://www.seat61.com/train-travel-in-germany.htm
He does try to keep it up-to-date, but as always with websites, go to https://int.bahn.de/en to check timetables and current ticket price.
I saved quite a bit of money on a cross-border train originating in Germany this summer by buying early - a Super Sparpreis fare. I booked as soon as the train we wanted became available. You are locked into the one train booked, but at the fare I paid, if we'd changed our minds we would have not lost much.
People above have noted to use the bahn.de site. That is important - when you google, you are likely to get Rail Europe or Trainline - agents. You don't want to buy from them - go to the source.
One other hint - especially if you buy early. There was a change to one of the trains we took this summer - change in departure station, of all things. Somehow, I didn't get notice of that either by email or on the train app. I did have a bahn.de account but was told that sometimes the Deutsche Bahn system isn't good with updates. Luckily for us, I checked on our train via the app the night before departure and saw the change. So, lesson learned, in future, I will monitor my booked train departures in the same way I tend to monitor my airline departures.