powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Deadlock found - что делать?
6 сообщений из 6, страница 1 из 1
Deadlock found - что делать?
    #39335185
Deadlock found when trying to get lock; try restarting transaction на таких sql запросах, это даже не транзакции:

replace into unicum VALUES ('5be3b97a1db6fe9f677c7acb5542b0b8','677eab066fc704bebf0212f938c0f033', NOW())

Имею такое:

CREATE TABLE `unicum` (
`unkey` VARCHAR(32) NOT NULL,
`unkey2` VARCHAR(32) NOT NULL DEFAULT '',
`utime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`unkey`),
UNIQUE INDEX `unkey2` (`unkey2`),
INDEX `utime` (`utime`)
) COLLATE='cp1251_general_ci' ENGINE=InnoDB;

Первое поле уникальный индекс (первичный)
Второе поле уникальный индекс (поле может быть пустым).

Что не так с моим запросом? Уже вторы сутки бьюсь не могу понять. Разбирать на отдельные запросы и вставку, чтобы избежать Deadlock не хочу. Хочу чтобы одним запросом replace into всё отрабатывало.
...
Рейтинг: 0 / 0
Deadlock found - что делать?
    #39335208
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ВоробьевЧто не так с моим запросом?
1) Попробуй начать с указания порядка полей в запросе:
Код: sql
1.
2.
REPLACE INTO unicum (`unkey`,`unkey2`,`utime`)
VALUES ('5be3b97a1db6fe9f677c7acb5542b0b8','677eab066fc704bebf0212f938c0f033', NOW())


2) Попробуй объяснить, за каким хреном ты задаёшь значение полю utime, если оно и так будет установлено в то же значение:
Код: sql
1.
2.
REPLACE INTO unicum (`unkey`,`unkey2`)
VALUES ('5be3b97a1db6fe9f677c7acb5542b0b8','677eab066fc704bebf0212f938c0f033')



Павел Воробьевэто даже не транзакции
Любой одиночный запрос - это транзакция.
...
Рейтинг: 0 / 0
Deadlock found - что делать?
    #39335351
Спасибо, попробую, через пару дней отпишусь помогло ли.
...
Рейтинг: 0 / 0
Deadlock found - что делать?
    #39336118
Не помогло(((((( В чём может быть дело? Всё сделал как вы советовали...

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
------------------------
LATEST DETECTED DEADLOCK
------------------------
2016-10-28 03:59:29 7f0e06bb6700
*** (1) TRANSACTION:
TRANSACTION 354088858, ACTIVE 0 sec inserting
mysql tables in use 1, locked 1
LOCK WAIT 3 lock struct(s), heap size 1184, 2 row lock(s), undo log entries 1
MySQL thread id 955408, OS thread handle 0x7f0e49073700, query id 5900093 localhost server update
REPLACE INTO unicum (unkey,unkey2) VALUES ('8fb6fcfee2a2f7806e1acab47619bf22','53acc62eb7e15d53a73c6fb7c78a198a')
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 1180 page no 207 n bits 216 index `unkey2` of table `server`.`unicum` trx table locks 1 total table locks 2  trx id 354088858 lock_mode X waiting lock hold time 0 wait time before grant 0 
*** (2) TRANSACTION:
TRANSACTION 354088857, ACTIVE 0 sec inserting
mysql tables in use 1, locked 1
5 lock struct(s), heap size 1184, 4 row lock(s), undo log entries 2
MySQL thread id 955409, OS thread handle 0x7f0e06bb6700, query id 5900092 localhost server update
REPLACE INTO unicum (unkey,unkey2) VALUES ('15f8f4c15a9b61a3804c904eadb75bec','53acc62eb7e15d53a73c6fb7c78a198a')
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 1180 page no 207 n bits 216 index `unkey2` of table `server`.`unicum` trx table locks 1 total table locks 2  trx id 354088857 lock_mode X locks rec but not gap lock hold time 0 wait time before grant 0 
*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 1180 page no 207 n bits 216 index `unkey2` of table `server`.`unicum` trx table locks 1 total table locks 2  trx id 354088857 lock_mode X waiting lock hold time 0 wait time before grant 0 
*** WE ROLL BACK TRANSACTION (1)
...
Рейтинг: 0 / 0
Deadlock found - что делать?
    #39336179
Пока что удалил индексы и сделал один Primary индекс из обеих полей unkey и unkey2. Посмотрю что даст.
...
Рейтинг: 0 / 0
Deadlock found - что делать?
    #39336186
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Logging to file 'c:\temp\mysql_console.log'
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.16-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE TABLE `unicum` (
    -> `unkey` VARCHAR(32) NOT NULL,
    -> `unkey2` VARCHAR(32) NOT NULL DEFAULT '',
    -> `utime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    -> PRIMARY KEY (`unkey`),
    -> UNIQUE INDEX `unkey2` (`unkey2`),
    -> INDEX `utime` (`utime`)
    -> ) COLLATE='cp1251_general_ci' ENGINE=InnoDB;
Query OK, 0 rows affected (0.45 sec)

mysql> REPLACE INTO unicum (`unkey`,`unkey2`)
    -> VALUES ('5be3b97a1db6fe9f677c7acb5542b0b8','677eab066fc704bebf0212f938c0f033');
Query OK, 1 row affected (0.08 sec)

mysql> REPLACE INTO unicum (`unkey`,`unkey2`)
    -> VALUES ('5be3b97a1db6fe9f677c7acb5542b0b9','677eab066fc704bebf0212f938c0f034');
Query OK, 1 row affected (0.06 sec)

mysql> REPLACE INTO unicum (`unkey`,`unkey2`)
    -> VALUES ('5be3b97a1db6fe9f677c7acb5542b0b8','677eab066fc704bebf0212f938c0f035');
Query OK, 2 rows affected (0.05 sec)

mysql> select * from unicum;
+----------------------------------+----------------------------------+---------------------+
| unkey                            | unkey2                           | utime               |
+----------------------------------+----------------------------------+---------------------+
| 5be3b97a1db6fe9f677c7acb5542b0b8 | 677eab066fc704bebf0212f938c0f035 | 2016-10-28 13:12:59 |
| 5be3b97a1db6fe9f677c7acb5542b0b9 | 677eab066fc704bebf0212f938c0f034 | 2016-10-28 13:12:51 |
+----------------------------------+----------------------------------+---------------------+
2 rows in set (0.04 sec)

mysql>
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Deadlock found - что делать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]