Ошибки mysql - Lock wait timeout

svenx
Posts: 173
Joined: Sat Jul 01, 2017 12:18 pm

Ошибки mysql - Lock wait timeout

Post by svenx »

Привет!

На одном из сайтов (мастер+слейв) стали сыпаться:
Mysql error 1205: Lock wait timeout exceeded; try restarting transaction (UPDATE IGNORE rot_gallery_stats24 SET current_clicks
постоянно.

Посмотрел базы, мне кажется слишком они большие? Просто на других более крупных сайтах таблицы поменьше раза в 3...

Table Type Size, Kb Records Ops
rot_gallery_stats30 InnoDB 2 462 880 834 291 Truncate
rot_gallery_stats1 InnoDB 2 209 728 732 224 Truncate
rot_gallery_stats28 InnoDB 1 698 032 716 616 Truncate
rot_gallery_stats20 InnoDB 1 580 576 772 654 Truncate
rot_gallery_stats42 InnoDB 1 458 560 802 854 Truncate
rot_gallery_stats32 InnoDB 1 427 088 750 708 Truncate
rot_gallery_stats17 InnoDB 1 375 984 770 882 Truncate
rot_gallery_stats38 InnoDB 1 356 512 782 940 Truncate
rot_gallery_stats24 InnoDB 1 312 656 821 593 Truncate
rot_gallery_stats37 InnoDB 1 231 744 718 584 Truncate
rot_gallery_stats19 InnoDB 1 162 256 800 680 Truncate
rot_gallery_stats15 InnoDB 1 093 616 759 473 Truncate
rot_gallery_stats16 InnoDB 800 528 816 388 Truncate
итд

жму Optimize DB - вылетает через какое-то время ошибка 504

как пофиксить?
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

Re: Ошибки mysql - Lock wait timeout

Post by admin »

Приветствую!
timeout потому что большая база + нагрузка

оптимайз базу не уменьшит по кол-ву записей, таймаут - по той же причине

меньше в 3 раза в чем ? размер? кол-во записей?
Don't forget to run script update
svenx
Posts: 173
Joined: Sat Jul 01, 2017 12:18 pm

Re: Ошибки mysql - Lock wait timeout

Post by svenx »

размер.

на другом сайте при ~350.000 галер:

Table Type Size, Kb Records Ops
rot_gallery_stats38 InnoDB 618 176 1 675 447 Truncate
rot_gallery_stats30 InnoDB 616 000 1 659 572 Truncate
rot_gallery_stats20 InnoDB 615 056 1 663 704 Truncatе

на этом (где ошибки) при 200.000 галер:
Table Type Size, Kb Records Ops
rot_gallery_stats30 InnoDB 2 462 880 834 291 Truncate
rot_gallery_stats1 InnoDB 2 209 728 732 224 Truncate
rot_gallery_stats28 InnoDB 1 698 032 716 616 Truncate

то есть записей в 2 раза меньше, а размер в 3 раза больше почему-то.

теперь вообще он сломался - на главную страницу (?operation=main&sub=&) не получается зайти - timeout выходит. на остальные можно.
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

Re: Ошибки mysql - Lock wait timeout

Post by admin »

перегружен мускл наверняка а конкретно диск
думаю вы накликали оптимаза и теперь там эти операции идут


можно плхз расставить как-то запятые или как-то ?

2 462 880 834 291 Truncate

не совсем ясно что за число где тут ..

пытался угадать где в 2 раза меньше и что б другое в 3 раза больше - не получается по этим числам
Don't forget to run script update
svenx
Posts: 173
Joined: Sat Jul 01, 2017 12:18 pm

Re: Ошибки mysql - Lock wait timeout

Post by svenx »

да, криво запостилась таблица, вот с разделителями:

на этом (где ошибки) при 200.000 галер:
Table /// Type /// Size, Kb /// Records
rot_gallery_stats30 /// InnoDB /// 2 462 880 /// 834 291
rot_gallery_stats1 /// InnoDB /// 2 209 728 /// 732 224
rot_gallery_stats28 /// InnoDB /// 1 698 032 /// 716 616
видно что 7-ти значные цифры по размеру и продолжают расти.

на другом сайте при ~350.000 галер и больше трафик:
Table /// Type /// Size, Kb /// Records
rot_gallery_stats38 /// InnoDB /// 618 176 /// 1 675 447
rot_gallery_stats30 /// InnoDB /// 616 000 /// 1 659 572
rot_gallery_stats20 /// InnoDB /// 615 056 /// 1 663 704
Я про то, что Records в 2 раза больше на этом примере, а размеры гораздо более скромные у баз, не разрастаются до гигабайтов.
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

Re: Ошибки mysql - Lock wait timeout

Post by admin »

кол-во записей в стат = кол-во галер * кол-во категорий в которых галера

условно если 100 галер и каждая только в 1 категории = 100 записей
100 и каждая в 10 каетгориях (в среднем) = 1 000 записей

размер таблицы регулирует мускл сам, можно делать оптимайз - он немного урезает, на нагрузке и таблице в 2 гига лучше делать в шеле конечно, тогда видно сразу что происходит
Don't forget to run script update
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

Re: Ошибки mysql - Lock wait timeout

Post by admin »

так же прямо в мускле можно посмотреть все размеры
те оно ж у вас все локально на серваке, обе базы, можно сравнить, я по описанию могу только фантазировать "почему бы мускл мог сделать именно так .."

вы можете сравнить например описания таблиц, типы полей, если это одинаковая версия скрипта то они должны быть +- одинаковые
Don't forget to run script update
svenx
Posts: 173
Joined: Sat Jul 01, 2017 12:18 pm

Re: Ошибки mysql - Lock wait timeout

Post by svenx »

так в том-то и дело что сайты одинаковые вообще во всём, на одинаковых скриптах,
одинаковые галеры туда добавляются итп.
Просто на трёх разных серверах, 3 разные базы.
Две нормального размера, а третья вот стала расти почему-то.

Неважно ведь сколько записей, ведь сами пишите - если количество записей и полей одинаковое,
то ведь и размер +/- одинаковый должен быть? - а он отличается в 7 раз

а как сделать optimize в шелле?
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

Re: Ошибки mysql - Lock wait timeout

Post by admin »

"Неважно ведь сколько записей, ведь сами пишите - если количество записей и полей одинаковое,
то ведь и размер +/- одинаковый должен быть? - а он отличается в 7 раз"

теоретически да, практически надо смотреть билды мускла и сравнивать какую-то конкретику. мысль в том что у вас же все на руках, просто сравните поля, версии мускла, какие либы , битность может быть ... может быть будут мысли почему размер отличается, у меня конкретного ответа нет, что б просто по цифрам дать точный ответ это надо быть в коре тим мускла ..


"а как сделать optimize в шелле?"

зайти в шеле в мускл и сделать
optimize table

а если в гугле просто набрать что-то вроде "как оптимизировать таблицу в мускле" то уцверен будет хорошая статья где все будет по полочкам и пунктам расписано точно лучше чем я могу сделать в сообщении )
Don't forget to run script update
admin
Site Admin
Posts: 37994
Joined: Wed Sep 10, 2008 11:43 am

Re: Ошибки mysql - Lock wait timeout

Post by admin »

explain таблиц вообще совпадает? точно?
Don't forget to run script update
Post Reply