powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Фрагментация индексов в InnoDB
8 сообщений из 8, страница 1 из 1
Фрагментация индексов в InnoDB
    #32460108
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MySQL 4.0.18 <-> VFP5.0+MyODBC
Таблицы = InnoDB
ISOLATION LEVEL = READ COMMITTED

Делаю вставку
insert into firm (dir,old)values(1,0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Connectivity error: [TCX][MyODBC]Lock wait timeout exceeded; Try restarting transaction

Может ли это быть из-за фрагментации индексов в таблице FIRM?
...
Рейтинг: 0 / 0
Фрагментация индексов в InnoDB
    #32460389
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет
...
Рейтинг: 0 / 0
Фрагментация индексов в InnoDB
    #32460573
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда я совсем потерялся, почему вообще может быть такая ситуация?
Я бы понял если бы я пытался изменить запись, занятую другой транзакцией.
А то я ведь вставляю новую !!!

Может выборку из лога запросов прислать?
...
Рейтинг: 0 / 0
Фрагментация индексов в InnoDB
    #32463190
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не утерплю ведь, пошлю логи.
А вдруг кто подскажет:

Все вроде активные транзакции с этой таблицейна момент (может что лишнее убрал)

Код: plaintext
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.
 040326   9 : 56 : 05  

 32  Query begin 
 56  Query begin 
 56  Query insert into firm (dir,old)values( 1 , 0 ) 
 56  Query select last_insert_id() as id 
 56  Query update firm set id= 5799 , parentid= 0 , dir= 1 , old= 0 , short= "XXXXXXX" , full= "XXXXXXXXX" , address= "", postaddres="  ", phone="  ", director="  ", inn="  ", kpp="  ", okpo="  ", okonh="  ", rascount="  ", bank="  ", korcount="  ", bik="  ", city=331 , pers= 52 , city1= 331 , ip62av=" 62 /АВ/ПРОЧ/ 000  ", ip62p="  62 /П/ПРОЧ/ 000  ", type="  00  ", email=" ", wp= 125  where id= 5799  
 56  Query update firm set dir= 0  where id= 5799  
 56  Query update firm set parentid= 0  where id= 5799  

 040326   10 : 06 : 37  

 56  Query select short as name from firm where _rowid=  5799  LOCK IN SHARE MODE 

 040326   11 : 08 : 33  

 6  Query begin 
 6  Query select short as name from firm where _rowid=  3969  LOCK IN SHARE MODE 

 040326   11 : 09 : 48  

 58  Query begin 
 58  Query select short as name from firm where _rowid=  0  LOCK IN SHARE MODE 
 58  Query select short as name from firm where _rowid=  0  LOCK IN SHARE MODE 
 58  Query select short as name from firm where _rowid=  375  LOCK IN SHARE MODE 
 58  Query select short as name from firm where _rowid=  375  LOCK IN SHARE MODE 
 77  Query begin 
 77  Query insert into firm (dir,old)values( 1 , 0 ) 
 77  Query select last_insertid() as id 
 78  Query begin 
 78  Query insert into firm (dir,old)values( 1 , 0 ) 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
Connectivity error: [TCX][MyODBC]Lock wait timeout exceeded; Try restarting transaction 


На всякий случай шлю таблицу FIRM?

Код: plaintext
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.
CREATE TABLE `firm` ( 
`id` int( 11 ) NOT NULL auto_increment, 
`parentid` int( 11 ) NOT NULL default '0', 
`dir` tinyint( 4 ) NOT NULL default '0', 
`old` tinyint( 4 ) NOT NULL default '0', 
`short` char( 50 ) NOT NULL default '', 
`full` char( 50 ) NOT NULL default '', 
`address` char( 80 ) NOT NULL default '', 
`postaddres` char( 80 ) NOT NULL default '', 
`phone` char( 50 ) NOT NULL default '', 
`director` char( 50 ) NOT NULL default '', 
`inn` char( 13 ) NOT NULL default '', 
`kpp` char( 13 ) NOT NULL default '', 
`okpo` char( 15 ) NOT NULL default '', 
`okonh` char( 15 ) NOT NULL default '', 
`rascount` char( 20 ) NOT NULL default '', 
`bank` char( 60 ) NOT NULL default '', 
`korcount` char( 20 ) NOT NULL default '', 
`bik` char( 15 ) NOT NULL default '', 
`city` int( 11 ) default NULL, 
`pers` int( 11 ) default NULL, 
`city1` int( 11 ) default NULL, 
`ip62av` char( 20 ) NOT NULL default '62/á÷/ðòïþ/000', 
`ip62p` char( 20 ) NOT NULL default '62/ð/ðòïþ/000', 
`type` enum('00','01','10','11') NOT NULL default '00', 
`email` char( 100 ) NOT NULL default '', 
`wp` int( 11 ) default NULL, 
PRIMARY KEY (`id`), 
KEY `dir` (`dir`), 
KEY `old` (`old`), 
KEY `city` (`city`), 
KEY `short` (`short`), 
KEY `pers` (`pers`), 
KEY `city1` (`city1`), 
KEY `parentid` (`parentid`), 
KEY `wp` (`wp`), 
CONSTRAINT `0_7481` FOREIGN KEY (`city`) REFERENCES `city` (`id`), 
CONSTRAINT `0_7482` FOREIGN KEY (`pers`) REFERENCES `pers` (`id`), 
CONSTRAINT `0_7483` FOREIGN KEY (`city1`) REFERENCES `city` (`id`), 
CONSTRAINT `firm_ibfk_1` FOREIGN KEY (`wp`) REFERENCES `wp` (`id`) 
) TYPE=InnoDB 

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Фрагментация индексов в InnoDB
    #32464768
BigHarryy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Случайно - не дедлок-ли это?

77 Query begin
77 Query insert into firm (dir,old)values(1,0)
77 Query select last_insertid() as id

78 Query begin
78 Query insert into firm (dir,old)values(1,0)
...
Рейтинг: 0 / 0
Фрагментация индексов в InnoDB
    #32464916
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дык там перед этим был еще инсерт - прокатило

Иногда и 4 инсерта в одновременно активных транзакциях прокатывало, а тут
:(

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Фрагментация индексов в InnoDB
    #32464960
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык там перед этим был еще инсерт - прокатило
По логам не видно - коммита не было, да и закрытия сессии тоже...
...
Рейтинг: 0 / 0
Фрагментация индексов в InnoDB
    #32465039
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да. Все транзакции открытые.
А что? По моему не должно быть дедлока (по логике)

Кстати, чтобы не загромождать логи я выкинул все транзакции закрытые на момент, все селекты без блокировки, и все операции с другими таблицами. Может зря.
Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Фрагментация индексов в InnoDB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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