What are the consequences of enabling slow_query_log and flushing the cache on mysql? I have a large database that is performing poorly recently. I want to enable the slow_query_log to investigate the queries and flushing the cache but I need to know what are the consequences of doing such action on a live system that is being used frequently 24/7. (I do not have permission to create a test copy of the database).

Much appreciated.
When the slow query log is enabled, the server has to check the time after each executed query (thats quite trivial) and if needed, write the query and some info to the log file - if you have really many queries, that might need some IO capacity, but you can enable it temporarily and monitor the situation, to quickly disable it if needed. It should not be a problem unless your IO is already maxed out.

Flushing the query cache (the flush query cache; command) actually means "defragmenting" of the allocated space. It may take even few seconds depending on the cache size (hopefully it is not bigger than 128MB?) and it might block some queries for that time.

For "clearing" the cache there is a reset query cache; command, that will imho take similar amount of time as the flush.

Usual advice is to disable the query cache altogether (would need a config change and a restart), because it scales badly in parallel environments in its current implementation.