Всем привет! Включил у себя лог медленных запросов в mysql и выводит выполнение.
# Time: 2020-03-12T12:27:02.829898Z
# User@Host: db_user[db_user] @ localhost [] Id: 1892069
# Query_time: 17.222467 Lock_time: 0.000035 Rows_sent: 0 Rows_examined: 1
SET timestamp=1584016022;
UPDATE `users_statistics` SET `profit_ref_1`=`profit_ref_1`+'0.0021' WHERE `id_user`='1410' LIMIT 1;
на `users_statistics`.`id_user` стоит primary key и записей порядка 70к я думаю, здесь не должно быть проблем.
Мне кажется проблема может быть в том что, какой-то другой запрос выполняется и тормозит выполнение всех остальных, вот тут видно что будто по цепочке и время выполнение у всех одно.
SELECT * FROM `still_youtube_ads_user` WHERE `idu` = '135498' and `status` != '0' ORDER BY `id` DESC;
# Time: 2020-03-12T12:27:02.829898Z
# User@Host: db_user[db_user] @ localhost [] Id: 1892069
# Query_time: 17.222467 Lock_time: 0.000035 Rows_sent: 0 Rows_examined: 1
SET timestamp=1584016022;
UPDATE `users_statistics` SET `profit_ref_1`=`profit_ref_1`+'0.0021' WHERE `id_user`='1410' LIMIT 1;
# Time: 2020-03-12T12:27:02.830099Z
# User@Host: db_user[db_user] @ localhost [] Id: 1892112
# Query_time: 17.205062 Lock_time: 0.000048 Rows_sent: 0 Rows_examined: 1
SET timestamp=1584016022;
UPDATE `users_statistics` SET `profit_ref_2`=`profit_ref_2`+'0.00098' WHERE `id_user`='1521' LIMIT 1;
# Time: 2020-03-12T12:27:02.834334Z
# User@Host: db_user[db_user] @ localhost [] Id: 1892725
# Query_time: 9.457391 Lock_time: 0.000061 Rows_sent: 0 Rows_examined: 1
SET timestamp=1584016022;
UPDATE `users_statistics` SET `profit_ref_1`=`profit_ref_1`+'0.00476' WHERE `id_user`='2087' LIMIT 1;
# Time: 2020-03-12T12:53:03.801421Z
# User@Host: db_user[db_user] @ localhost [] Id: 1990736
# Query_time: 1.091659 Lock_time: 0.000149 Rows_sent: 1 Rows_examined: 152662
SET timestamp=1584017583;
SELECT
ОЗУ на сервере 10 гб, все на одном сервере что сайт, что бд.
my.cnf файл
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set = utf8
#default-character-set = utf8mb4
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
local-infile=0
explicit_defaults_for_timestamp = 1
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
default_storage_engine=MyISAM
skip-external-locking
connect_timeout = 70
interactive_timeout = 70
wait_timeout = 70
key_buffer_size = 16M
join_buffer_size = 8M
max_connect_errors = 30
max_allowed_packet = 16M
#table_open_cache = 4096
thread_stack = 384K
thread_cache_size = 500
max_user_connections = 150
max_connections = 150
myisam_sort_buffer_size = 8M
net_buffer_length = 96K
query_cache_type = 1
query_cache_limit = 16M
query_cache_size = 1M
max_heap_table_size=48M
tmp_table_size=48M
sort_buffer_size = 8M
read_buffer_size = 8M
read_rnd_buffer_size = 8M
#net_read_timeout=500
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#log slow queries
slow_query_log_file = /var/log/mysql/mysql-slow.log
slow_query_log = 1
long_query_time = 1
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
log_error = /var/log/mysql/mysql_errornew.log
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
innodb_buffer_pool_size = 3048M
innodb_thread_concurrency = 17
innodb_log_file_size = 128M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_lock_wait_timeout = 180
innodb_file_per_table = 1
innodb_buffer_pool_instances=3
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
#character-set-server = utf8mb4
#collation-server = utf8mb4_unicode_ci
#init-connect = "SET NAMES utf8mb4"
skip-character-set-client-handshake
[mysqldump]
quick
quote-names
max_allowed_packet = 64M
default-character-set = utf8
#default-character-set = utf8mb4
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
default-character-set = utf8
[isamchk]
#key_buffer=512M
#sort_buffer=512M
#read_buffer=512M
#write_buffer=512M
[myisamchk]
#key_buffer=512M
#sort_buffer=512M
#read_buffer=512M
#write_buffer=512M
[mysqlhotcopy]
interactive-timeout
Таблицы MyISAM и innoDB есть, но MyISAM больше.
users_statistics = innoDB
still_youtube_ads_user = MyISAM
В чем может быть проблема выполнение таких простых запросов ? Куда направить свой взор ?
Может конфиги неправильно настроены, либо код кривой.
Конфиги делал не я, так что сильно прошу не ругать.