Size: a a a

2021 June 04

AS

Anton Shumeyko in ru_mysql
ясно спасибо попробую еще вопрос есть :
SET @target = 'test2';
SELECT * FROM @target.auth;

Как задействовать эту переменную чтобы получилось SELECT * FROM test2.auth;
источник

NI

Nickolay Ihalainen in ru_mysql
set @tbl='processlist';
set @sql = concat('select 1 FROM `information_schema`.`',@tbl,'`');
prepare stmt1 from @sql;
execute stmt1;
deallocate prepare stmt1;
источник

TF

Terry Filch in ru_mysql
лучше оборачивай в кавычки ```
источник

NI

Nickolay Ihalainen in ru_mysql
fixed
источник

AS

Anton Shumeyko in ru_mysql
спасибо помогло, ток не понял смысла в
deallocate prepare stmt1;
источник

NI

Nickolay Ihalainen in ru_mysql
если вдруг используется пул соединений, чтобы не добежать до max_prepared_stmt_count
источник

AB

Alex Butenko in ru_mysql
товарищи, для поиска дедлоков никто не знаком с этим запросом https://pastebin.com/VaxTGucX ?
источник

AB

Alex Butenko in ru_mysql
я что-то не совсем понимаю как часто это добро нужно запускать. судя по всему это риалтайм данные?
источник

NI

Nickolay Ihalainen in ru_mysql
для дедлоков https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_print_all_deadlocks

information_schema.innodb_lock_waits дедлоки не увидеть, т.к. innodb deadlock monitor сразу откатывает транзакцию, как только находит дедлок. Но с блокировками долгими можно разбираться.
источник

AB

Alex Butenko in ru_mysql
innodb_print_all_deadlocks не показывает особо показывает какой конкретно запрос лочит как я понимаю
источник

AB

Alex Butenko in ru_mysql
это уже включено
источник

NI

Nickolay Ihalainen in ru_mysql
он показывает show engine innodb status в логе, можно понять какие запросы залочены, но непонятно из-за каких блокировок
источник

AB

Alex Butenko in ru_mysql
точно
источник

AB

Alex Butenko in ru_mysql
и этот мега запрос должен именно их показывать
источник

NI

Nickolay Ihalainen in ru_mysql
блокировки в innodb существуют только когда другие транзакции их ждут, поэтому эта табличка обычно пустая. deadlock monitor работает непрерывно и он прибьёт транзакции при взаимной блокировке быстрее чем этот селект отработает. на тестовых серваках можно вырубить монитор https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_deadlock_detect
и тогда да, будут видны дедлоки
источник
2021 June 05

AM

Alex Master in ru_mysql
Добрый день!
Подскажите пожалуйста по настройкам оптимизации БД.
Сейчас такая картина. В базе ~ 700 таблиц. В них идет постоянная запись с разной интенсивностью. Соотношение запись к запросам около 80/20.
Постоянно высокая загрузка CPU, 90-100%.
Я не спец по БД, но из того что нашел по оптимизации MYSQL:
1. Планирую innodb_flush_log_at_trx_commit выставить с 1 на 2.
2. innodb_buffer_pool_size выставил на 80% от серверной памяти.
Вопрос собственно в том, почему высокая нагрузка на CPU и какими путями можно ее снижать?
Возможно настройки параллельности?
Запись в БД производится 2 процессами через bulk insert, многопоточно.
На всякий случай приложу свой my.ini
источник

AM

Alex Master in ru_mysql
источник

AM

Alex Master in ru_mysql
источник

NI

Nickolay Ihalainen in ru_mysql
Через
SELECT * FROM statement_analysis

найти и ускорить индексами TOP10 медленных запросов.
innodb_flush_log_at_trx_commit влияет на запись в базу. innodb_buffer_pool_size полезно увеличивать, но если база меньше чем это число, то не поможет.
источник

AM

Alex Master in ru_mysql
Спасибо! Запросы уже оптимизировал, их довольно много в единицу времени, так как по бд все время ведется аналитика в реальном времени.
Если есть возможность более детально проконсультировать за оплату, напишите пожалуйста в лс.
источник