Optimal design for 90mm row clickstream MySQL
OPTIMIZE TABLE is almost always not worth doing.

INDEXes are your friend -- they can (in many cases) make queries run orders of magnitude faster.  Provide a Slow query, plus SHOW CREATE TABLE, and we can help you.  Or study my cookbook.  As that says, picking the 'right' index (perhaps a composite index) requires that you first have some clues of the SELECTs you will be doing.

"Rightsizing" datatypes is a good idea, especially when first creating the tables.  Smaller --> more cacheable --> less I/O --> faster.

Two tables (visit info and page info)?  If they are 1:1, usually 1 table is 'right'; if they are 1:many, then two tables is a must.