MySQL Performance Tips
Optimizing MySQL queries and database
EXPLAIN
EXPLAIN SELECT * FROM users WHERE email = '[email protected]'; # analyze query
EXPLAIN ANALYZE SELECT * FROM users; # execution plan with timing
Indexes
CREATE INDEX idx_email ON users(email); # create index
SHOW INDEX FROM users; # show table indexes
DROP INDEX idx_email ON users; # drop index
Composite Index
CREATE INDEX idx_name_age ON users(last_name, first_name); # multi-column index
Analyze Table
ANALYZE TABLE users; # update table statistics
Optimize Table
OPTIMIZE TABLE users; # defragment and reclaim space
Query Cache
SHOW VARIABLES LIKE 'query_cache%'; # check cache settings
FLUSH QUERY CACHE; # clear query cache
Slow Query Log
SET GLOBAL slow_query_log = 'ON'; # enable slow query log
SET GLOBAL long_query_time = 2; # log queries > 2 seconds