Organizing SQL tables and named queries efficiently

I am still learning how to analyze the structure of my transaction groups, tables, and named queries.
I was convinced the other day that one big table is better.
Today, though, I guess I don’t understand again.

Option 1
One huge table, all events, all machines

Columns:
ndx, machine, event code, quantity or duration, t_stamp

Pro - one big table, all the machines, all the codes make it easy to parametize
Con - table will be huge

Option 2
one table of events per machine

Columns:
ndx, event code, quantity or duration, t_stamp

pro - smaller tables, faster queries?
con - a different named query for every machine

Option 3
A table for uptime events
A table for rejection events
Each of these for each machine

columns
ndx, downtime code, duration, t_stamp
ndx, rejection code, quantity, t_stamp

pro - smallest tables? fastest queries?
con - named queries for each machine