powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Полнотекстовый поиск блокирует таблицу [РЕШЕНО]
6 сообщений из 6, страница 1 из 1
Полнотекстовый поиск блокирует таблицу [РЕШЕНО]
    #39330276
MySQL engine: InnoDB
MySql version: 5.6.31

1.Запускаем простой запрос

Код: sql
1.
2.
3.
SELECT o.id
FROM tbl_oper o
WHERE o.id_oper_tip = 8 AND o.id_oper_naim = 6;



результат: 7 строк

2. Запускаем запрос с полнотекстовым поиском на этой же таблице

Код: sql
1.
2.
3.
4.
5.
SELECT
    o.id,
    MATCH(o.full_text_search) AGAINST('7930' IN BOOLEAN MODE) 'match'
FROM tbl_oper o
WHERE 0 < MATCH(o.full_text_search) AGAINST('7930' IN BOOLEAN MODE)



результат: 6 строк (не так важно)

3. Повторяем первый запрос, результат: 0 строк , но полнотекстовый поиск по-прежнему работает правильно.

4. Первый запрос будет снова работать, только после перезагрузки сервера.

На результат не влияет способ запуска запросов: с одного подключения или с нескольких, с IDE, с терминала или из приложения.
Задавал этот вопрос на stackoverflow. Предложили проверить базу на ошибки, проверил командой mysqlcheck -A -e --auto-repair. У всех таблиц статус ОК.
...
Рейтинг: 0 / 0
Полнотекстовый поиск блокирует таблицу [РЕШЕНО]
    #39330331
На всякий случай:
Код: 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.
47.
48.
CREATE TABLE 'tbl_oper' (
    'id'                INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    'id_oper_naim'      INT(10) UNSIGNED          DEFAULT NULL,
    'id_oper_tip'       INT(10) UNSIGNED          DEFAULT NULL,
    'num'               VARCHAR(20)               DEFAULT NULL,
    'data_oper'         DATE                      DEFAULT NULL,
    'time_oper'         VARCHAR(20)               DEFAULT NULL,
    'id_sotrZ'          INT(10) UNSIGNED          DEFAULT NULL,
    'id_fiz_deb'        INT(10) UNSIGNED          DEFAULT NULL,
    'id_yur_deb'        INT(10) UNSIGNED          DEFAULT NULL,
    'id_podrazdel_deb'  INT(10) UNSIGNED          DEFAULT NULL,
    'id_fiz_kred'       INT(10) UNSIGNED          DEFAULT NULL,
    'id_yur_kred'       INT(10) UNSIGNED          DEFAULT NULL,
    'id_podrazdel_kred' INT(10) UNSIGNED          DEFAULT NULL,
    'id_nds_stavka'     INT(10) UNSIGNED          DEFAULT NULL,
    'summa'             DECIMAL(10, 2)            DEFAULT NULL,
    'summa_nds'         FLOAT                     DEFAULT NULL,
    'comment'           TEXT,
    'prov'              INT(10) UNSIGNED          DEFAULT NULL,
    'num_kred'          VARCHAR(20)               DEFAULT NULL,
    'prem'              INT(11)                   DEFAULT NULL,
    'id_dealer'         INT(10) UNSIGNED          DEFAULT NULL,
    'full_text_search'  TEXT,
    PRIMARY KEY ('id'),
    KEY 'id_podrazdel_kred' ('id_podrazdel_kred'),
    KEY 'id_oper_naim' ('id_oper_naim'),
    KEY 'id_oper_tip' ('id_oper_tip'),
    KEY 'id_yur_deb' ('id_yur_deb'),
    KEY 'id_podrazdel_deb' ('id_podrazdel_deb'),
    KEY 'id_yur_kred' ('id_yur_kred'),
    KEY 'id_fiz_deb' ('id_fiz_deb'),
    KEY 'id_nds_stavka' ('id_nds_stavka'),
    KEY 'ct_oper_sotrz_idx' ('id_sotrZ'),
    KEY 'ct_oper_fiz_kred_idx' ('id_fiz_kred'),
    FULLTEXT KEY 'full_text_search' ('full_text_search'),
    CONSTRAINT 'ct_oper_fiz_deb' FOREIGN KEY ('id_fiz_deb') REFERENCES 'tbl_person' ('id') ON UPDATE CASCADE,
    CONSTRAINT 'ct_oper_fiz_kred' FOREIGN KEY ('id_fiz_kred') REFERENCES 'tbl_person' ('id') ON UPDATE CASCADE,
    CONSTRAINT 'ct_oper_naim' FOREIGN KEY ('id_oper_naim') REFERENCES 'spr_oper_naim' ('id') ON UPDATE CASCADE,
    CONSTRAINT 'ct_oper_sotrz' FOREIGN KEY ('id_sotrZ') REFERENCES 'tbl_person' ('id') ON UPDATE CASCADE,
    CONSTRAINT 'ct_oper_type' FOREIGN KEY ('id_oper_tip') REFERENCES 'spr_oper_tip' ('id') ON UPDATE CASCADE,
    CONSTRAINT 'ct_podrazdel_deb' FOREIGN KEY ('id_podrazdel_deb') REFERENCES 'tbl_podrazdel' ('id') ON UPDATE CASCADE,
    CONSTRAINT 'ct_podrazdel_kred' FOREIGN KEY ('id_podrazdel_kred') REFERENCES 'tbl_podrazdel' ('id') ON UPDATE CASCADE,
    CONSTRAINT 'ct_yur_deb' FOREIGN KEY ('id_yur_deb') REFERENCES 'tbl_yur' ('id') ON UPDATE CASCADE,
    CONSTRAINT 'ct_yur_kred' FOREIGN KEY ('id_yur_kred') REFERENCES 'tbl_yur' ('id') ON UPDATE CASCADE
)
    ENGINE = InnoDB
    AUTO_INCREMENT = 38357
    DEFAULT CHARSET = utf8
...
Рейтинг: 0 / 0
Полнотекстовый поиск блокирует таблицу [РЕШЕНО]
    #39330471
Проверил на другой таблице, там таких глюков нет.
Еще только что заметил, запросы без оператора "AND" отрабатывают нормально:
Код: sql
1.
2.
3.
SELECT o.id
FROM tbl_oper o
WHERE o.id_oper_naim = 6



835 строк

Код: sql
1.
2.
3.
SELECT o.id
FROM tbl_oper o
WHERE o.id_oper_tip = 8



7 строк
...
Рейтинг: 0 / 0
Полнотекстовый поиск блокирует таблицу [РЕШЕНО]
    #39330652
Fitter2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто как догадка к общему подходу текстового поиска в InnoDB.
Вот тут человек утверждает , что это включено с версии 5.6.4
(ht_t_p://ru.stackoverflow.com/questions/456548/innodb-%D0%B8-%D0%9F%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA)
...
Рейтинг: 0 / 0
Полнотекстовый поиск блокирует таблицу [РЕШЕНО]
    #39333366
Урезал базу до одной таблицы из 4 колонок и 9 строк 3 индексов. Это минимальный набор на котором ошибку можно возпроизвести. Нет удаленных ключей, только индексы

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE `operations` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name_id` int(10) unsigned DEFAULT NULL,
  `type_id` int(10) unsigned DEFAULT NULL,
  `description` text,
  PRIMARY KEY (`id`),
  KEY `name_id_idx` (`name_id`),
  KEY `type_id_idx` (`type_id`),
  FULLTEXT KEY `ft_idx` (`description`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8



idname_idtype_iddescription123"hello world"231"pascal"331"geeen apple"468"deep hell"551NULL631NULL723NULL834NULL968NULL

Первый запрос начинает работать после:
- перезагрузки сервера
- переиндексации любого из индексов
- или когда в таблице останется только одна строка с name_id = 6 и type_id = 8.

Ошибка воспроизводится на версии MySQL 5.6.32, 5.6.34

Обновился до 5.7.16 -- все заработало!
...
Рейтинг: 0 / 0
Полнотекстовый поиск блокирует таблицу [РЕШЕНО]
    #39334813
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася ГайкинЗдравствуйте, пожалуйста добавте к теме tag [РЕШЕНО]. Я сам не нашел, где можно тему отредактировать Обычно у нас такое не практикуется, но специально по просьбе - добавил.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Полнотекстовый поиск блокирует таблицу [РЕШЕНО]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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