Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Полнотекстовый поиск блокирует таблицу [РЕШЕНО] / 6 сообщений из 6, страница 1 из 1
20.10.2016, 08:19
    #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
20.10.2016, 09:29
    #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
20.10.2016, 11:42
    #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
20.10.2016, 14:07
    #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
25.10.2016, 11:18
    #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
26.10.2016, 21:30
    #39334813
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полнотекстовый поиск блокирует таблицу [РЕШЕНО]
Вася ГайкинЗдравствуйте, пожалуйста добавте к теме tag [РЕШЕНО]. Я сам не нашел, где можно тему отредактировать Обычно у нас такое не практикуется, но специально по просьбе - добавил.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Полнотекстовый поиск блокирует таблицу [РЕШЕНО] / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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