Приветствую уважаемое комюнити!
Прошу подсказать, как лучше оптимизировать MySQL, уже несколько дней пытаюсь пододобрать оптимальные параметры, но пока не совсем удачно..
вот мой конфиг:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
innodb_flush_log_at_trx_commit=1
sync_binlog=1
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
low-priority-updates
skip-name-resolve
key_buffer = 2048M
max_allowed_packet = 16M
thread_stack = 192K
#thread_cache_size = 8
thread_cache_size = 64
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
max_connections = 30
#table_cache = 64
#thread_concurrency = 10
thread_concurrency = 12
query_cache_type = ON
#query_cache_limit = 1M
query_cache_limit = 10M
#query_cache_size = 16M
query_cache_size = 256M
innodb_buffer_pool_size = 2G
query_cache_min_res_unit=3K
log_error = /var/log/mysql/error.log
# Here you can see queries with especially long duration
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
#key_buffer = 16M
key_buffer = 2G
sort_buffer=128M
max_join_size=1000000
max_sort_length=20
max_used_connections=21
myisam_sort_buffer_size=1024М
net_read_timeout=12
net_write_timeout=15
wait_timeout=30
interactive_timeout=600
key_buffer_size=2G
max_heap_table_size=512M
tmp_table_size=1024M
read_buffer_size = 32M
read_rnd_buffer_size = 16M
join_buffer_size = 16M
!includedir /etc/mysql/conf.d/
Памяти на сервере 8G, пользовался скриптами mysqltuner и tuning-primer.sh...Пытаюсь настроить эффективность кеша, но, у меня постоянно значение not_cached превышает queries_in_cache..
есть медленные запросы вида:
SET timestamp=1430380261;
SELECT
distinct(hi.item_id),
hi.item_created,
hi.item_calltype,
hi.item_requestor_email,
hi.item_requestor,
hi.item_title,
hi.item_status,
hi.item_priority,
CONCAT(u.user_first_name,' ',u.user_last_name) assigned_fullname,
u.user_email as assigned_email,
his.status_date,
max(his.status_date) as last_date
FROM helpdesk_item_status his
LEFT JOIN helpdesk_items hi ON hi.item_id = his.status_item_id
LEFT JOIN users u ON u.user_id = hi.item_assigned_to
WHERE item_assigned_to=20
AND item_status !=2 AND (item_company_id in ('') OR item_created_by=20) GROUP BY his.status_item_id ORDER BY last_date;
Как бы мне их кешировать, или оптимизировать mysql под них, т.к. доступа к коду у меня нет, а это очень частые запросы.
Большое спасибо!