cursor.execute('SELECT * FROM users WHERE id = % s', (ticket_admin_id,))
ticket_admin = cursor.fetchone()
sql_check_msg = f"SELECT * FROM ticket_message WHERE chatid = {ticket_id}"
cursor.execute(sql_check_msg)
msg = cursor.fetchall()
можно ли обойтись без всего этого
Во первых убери из нее cout. Вывод в консоль - блокирующий и вредит производительности.
Во вторых она делает слишком много всего всякого. Коллизии. Гравитация. Это разные ее части
и я-бы разбил процедуру на под-процедуры как раз для регулировки перформанса. Это во вторых.
В третьих нужно понять временную диаграмму. Сколько % общего времени игры занимает эта процедура.
Поскольку она - эксклюзивная то ее время должно быть меньше чем суммарное. Посчитай с точностью
до милисекунд и микросекунд. Например игра работала 1 минуту и из этого времени Update(float) кумулятивно
занимал допустим 55 секунд. И тогда мы будем понимать есть ли вообще шанс у читателей успеть заскочить
в блокировку и что-то прочитать. И еще посчитай сколько раз вызывался update за 1 минуту. Блокировка
это такая сволочь что даже не делая полезной работы она может забирать полезные циклы CPU.
Исходя из полученных результатов можно будет придумать стоит ли тебе делать 1000 Герц на физику и 60
на визуализацию. Мне кажется что с физикой ты где-то ошибся. Не видно прямо таких убедительных
причин чтоб так часто обновлять вселенную.