I have a table in my DB to store the errors that happen during the registration of a user. Multiple errors can occur during the process and the same errors can happen several time.
Initialy, I created the following tables:

Since then, the DB has been growing and queries that join the errors table now take way and way more time to process. I know that all table should habitually have a primary key and I guess that why the queries are slow. In my case, the error tables does not have primary key.
What is wrong with my above tables and how should I correct the structure to improve the speed of my queries?
Thanks for your time!