Страница 1 из 1

Ошибка при добавлении полей

Добавлено: 12 апр 2023, 09:34
believe
При большом добавлении полей из настройки формы, получаю ошибку.

Re: Ошибка при добавлении полей

Добавлено: 12 апр 2023, 09:54
believe
Это возникает когда создаешь много полей "Выпадающий список" с использованием "глобального списка"

Re: Ошибка при добавлении полей

Добавлено: 12 апр 2023, 10:25
alexinc
Ограничение базы данных MySQL, для увеличения требуется перекомпиляция из исходных текстов. И все равно, максимум будет 128 ключей (из-за ограничения архитектуры.)
Возможно, используется много конструкций ORDER by, возможно, создано много вторичных индексов. Насколько я понял работу Руко - при использовании галки - использовать в поиске - создается индекс. Нужно посмотреть сущности и где не столь нужно - почистить галки и индексы в базе.
PS. и в запросе вижу ADD_INDEX. Значит много индексов создается. более 50-60 (не забываем индексы в самой сущности.)

Re: Ошибка при добавлении полей

Добавлено: 12 апр 2023, 10:48
believe
Он создает поля и они работаю. Но, ошибка вылетает.

Re: Ошибка при добавлении полей

Добавлено: 12 апр 2023, 11:31
support
Стоит ограничение на количество индексов. Для каждого выпадающего списка автоматически создается index. Так сделано специально, чтоб при фильтрации запрос отрабатывал быстрее.
Просто увеличьте количество индексов.

Re: Ошибка при добавлении полей

Добавлено: 12 апр 2023, 13:18
believe
ок.

Re: Ошибка при добавлении полей

Добавлено: 12 апр 2023, 15:43
nruslan2
а как увеличить?

Re: Ошибка при добавлении полей

Добавлено: 13 апр 2023, 11:18
alexinc
ну вот как-то так:
Из документации: "Максимальное количество индексов на таблицу MyISAM составляет 64. Это можно изменить путем перекомпиляции. Начиная с MySQL 5.0.18, вы можете настроить сборку, вызвав configure с параметром --with-max-indexes=N где N - максимальное количество индексов, разрешаемых для каждой таблицы MyISAM. N должно быть меньше или равно 128. Перед MySQL 5.0.18 необходимо изменить источник."

Итак, мы предполагаем, что вы используете MyISAM. Если вы используете InnoDB, вы можете получить столько ключей, сколько захотите, если длина данных находится в пределах 3072 байта.