The thing with databases is, they are built for storing millions of records. Unless you have good reason not to, simplest solution would be... to store detailed match information in MySQL database itself.
SQLite is most likely good option if your application doesn't need one, global database but instead realies on local data stores (which doesn't seem to be the case). Something like application configuration, local user settings or private data. Being database aswell, SQLite is also good at storing millions of records. If you wish to, you might just aswell migrate entire thing to SQLite.
Finally, I'd advice against storing match data in XML. XML files usually take longer to process (but are more user-friendly), but indeed are often used to store generated reports. However, those reports base on some existing data - in your case that would be match details, which has to be stored somewhere. Generating XML report from data in XML doesn't really sound like thing to do, hence my advice.
Also, using database as storage (as opposed to XML file) will enable you to easily generate different content from the same data. Now you want reports - fine, this can be easily built (even to XML file) using content stored in database. Later you might need shortened report, or only report from first 15 minutes, or split in halves, anything. It might be easier to build those things using data from database, than in XML. Think of a XML in this case as end product (report for user), while raw database rows - something that lets you create those end products.