As a MySQL newbie i would like to share how my mysql server optimization goes thru the history:

-------- Performance Metrics -------------------------------------------------
[--] Up for: 23d 2h 29m 34s (193M q [97.175 qps], 9M conn, TX: 8405B, RX: 37B)
[--] Reads / Writes: 74% / 26%
[--] Total buffers: 2.3G global + 34.5M per thread (200 max threads)
[OK] Maximum possible memory usage: 9.0G (52% of installed RAM)
[OK] Slow queries: 0% (105K/193M)
[OK] Highest usage of available connections: 19% (39/200)
[!!] Key buffer size / total MyISAM indexes: 0B/1.1G
[!!] Key buffer hit rate: 0.0% (2B cached / 2B reads)
[OK] Query cache efficiency: 70.2% (94M cached / 133M selects)
[!!] Query cache prunes per day: 558587
[OK] Sorts requiring temporary tables: 1% (108K temp sorts / 9M sorts)
[!!] Joins performed without indexes: 1214820
[!!] Temporary tables created on disk: 32% (4M on disk / 15M total)
[OK] Thread cache hit rate: 99% (11K created / 9M connections)
[!!] Table cache hit rate: 0% (1K open / 75M opened)
[OK] Open file limit used: 3% (1K/43K)
[OK] Table locks acquired immediately: 99% (73M immediate / 73M locks)
[OK] InnoDB buffer pool / data size: 760.0M/714.0M
[OK] InnoDB log waits: 0
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
Increasing the query_cache size over 128M may reduce performance
Adjust your join queries to always utilize indexes
Temporary table size is already large - reduce result set size
Reduce your SELECT DISTINCT queries without LIMIT clauses
Increase table_cache gradually to avoid file descriptor limits
Read this before increasing table_cache over 64: http://bit.ly/1mi7c4C
Variables to adjust:
key_buffer_size (> 1.1G)
query_cache_size (> 512M) [see warning above]
join_buffer_size (> 16.0M, or always use indexes with joins)
table_cache (> 1024)


Report Complete:
Wed Apr 13 09:02:15 UTC 2016
Adjustments i made after above report:
table_open_cache=1024 -> 512M (lowered)
tmp_table_size=1024M -> 512M (lowered, average maximum size of mysql table is 45M)
join_buffer_size=16M -> 64M (increase)
read_buffer_size=16M -> 64M (increase)
sort_buffer_size=64M <- NEW variable

Decision based on this article
Lets see next run if tmp_tables % reduce