One table to rule them all, or thousand smaller?
Exactly NOT 10k! - it always bad idea, for each open table MySQL will spend memory, cpu time, disk resources and etc

Much better give all this resources back to MySQL and it will manage queries for big table. With proper queries and indexes - millions and billions of rows in production databases.

One single table or may be few depend from other logic.

Possible solutions:
1 Table for active events
Second for archived

Other split ways like event types - also possible. But generally - for open table MySQL can spend same or more time than for search single event from VERY big table